From 89939ff9e89dbee9a8e4e7b8a5614f1fff0a74ae Mon Sep 17 00:00:00 2001 From: groditi Date: Tue, 13 Nov 2007 21:43:36 +0000 Subject: changes so far for new moose / mop --- Makefile.PL | 2 +- lib/Reaction/Class.pm | 2 +- lib/Reaction/InterfaceModel/Collection.pm | 4 +- .../InterfaceModel/Collection/DBIC/Role/Base.pm | 6 +- .../InterfaceModel/Collection/Virtual/ResultSet.pm | 2 +- lib/Reaction/InterfaceModel/Object.pm | 4 +- lib/Reaction/InterfaceModel/Reflector/DBIC.pm | 19 +++--- lib/Reaction/Meta/Attribute.pm | 40 +++---------- .../InterfaceModel/Action/ParameterAttribute.pm | 2 + lib/Reaction/UI/CRUDController.pm | 4 +- lib/Reaction/UI/LayoutSet.pm | 2 +- lib/Reaction/UI/LayoutSet/TT.pm | 2 +- lib/Reaction/UI/View.pm | 20 +++---- lib/Reaction/UI/ViewPort.pm | 2 +- lib/Reaction/UI/ViewPort/ActionForm.pm | 70 +++++++++++----------- lib/Reaction/UI/ViewPort/DisplayField.pm | 5 +- lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm | 2 +- .../UI/ViewPort/DisplayField/Collection.pm | 4 +- lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm | 2 +- lib/Reaction/UI/ViewPort/DisplayField/List.pm | 6 +- .../UI/ViewPort/DisplayField/RelatedObject.pm | 4 +- lib/Reaction/UI/ViewPort/Field.pm | 4 +- lib/Reaction/UI/ViewPort/Field/ChooseMany.pm | 2 +- lib/Reaction/UI/ViewPort/Field/ChooseOne.pm | 4 +- lib/Reaction/UI/ViewPort/Field/DateTime.pm | 2 +- lib/Reaction/UI/ViewPort/Field/TimeRange.pm | 2 +- lib/Reaction/UI/ViewPort/GridView.pm | 10 ++-- lib/Reaction/UI/ViewPort/GridView/Action.pm | 2 +- lib/Reaction/UI/ViewPort/GridView/Entity.pm | 42 ++++++------- lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm | 4 +- .../UI/ViewPort/GridView/Role/Entity/Actions.pm | 4 +- lib/Reaction/UI/ViewPort/GridView/Role/Order.pm | 4 +- lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm | 15 +++-- lib/Reaction/UI/ViewPort/ListView.pm | 2 +- lib/Reaction/UI/ViewPort/ObjectView.pm | 58 +++++++++--------- lib/Reaction/UI/ViewPort/TimeRangeCollection.pm | 34 +++++------ lib/Reaction/UI/Widget/Field.pm | 8 +-- lib/Reaction/UI/Window.pm | 14 ++--- t/lib/RTest/InterfaceModel/Reflector/DBIC.pm | 19 +++--- 39 files changed, 207 insertions(+), 227 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index aec5ca2..db1b95f 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -15,7 +15,7 @@ requires 'Test::Class' => 0; requires 'Test::Memory::Cycle' => 0; requires 'DBIx::Class' => '0.07001'; requires 'SQL::Translator' => '0.08'; -requires 'Moose' => '0.22'; +requires 'Moose' => '0.28'; requires 'aliased' => 0; requires 'DateTime'; requires 'DateTime::Span'; diff --git a/lib/Reaction/Class.pm b/lib/Reaction/Class.pm index b2c0ad9..549ee15 100644 --- a/lib/Reaction/Class.pm +++ b/lib/Reaction/Class.pm @@ -129,7 +129,7 @@ sub do_class_sub { #print STDERR "$package \n"; #print STDERR $package->meta->blessed, " \n"; $package->meta->make_immutable; -# (inline_accessor => 0, inline_destructor => 0,inline_constructor => 0,); + # (inline_accessor => 0, inline_destructor => 0,inline_constructor => 0,); } sub setup_and_cleanup { diff --git a/lib/Reaction/InterfaceModel/Collection.pm b/lib/Reaction/InterfaceModel/Collection.pm index 73f2f4e..9b962bd 100644 --- a/lib/Reaction/InterfaceModel/Collection.pm +++ b/lib/Reaction/InterfaceModel/Collection.pm @@ -33,7 +33,7 @@ class Collection is "Reaction::InterfaceModel::Object", which { metaclass => DomainModelAttribute, ); - implements _build_collection_store => as { [] }; + implements _build__collection_store => as { [] }; implements members => as { my $self = shift; @@ -112,7 +112,7 @@ presently stored. Has a clearer of C<_clear_collection_store> and a predicate of =head1 PRIVATE METHODS -_build_collection_store +_build__collection_store Builder method for attribute_collection_store, returns an empty arrayref diff --git a/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm b/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm index efddcba..ee32997 100644 --- a/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm +++ b/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm @@ -30,14 +30,14 @@ role Base, which { #}; #Oh man. I have a bad feeling about this one. - implements _build_im_class => as { + implements _build__im_class => as { my $self = shift; - my $class = blessed $self || $self; + my $class = blessed($self) || $self; $class =~ s/::Collection$//; return $class; }; - implements _build_collection_store => as { + implements _build__collection_store => as { my $self = shift; my $im_class = $self->_im_class; [ $self->_source_resultset->search({}, {result_class => $im_class})->all ]; diff --git a/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm b/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm index 3878992..89e55d6 100644 --- a/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm +++ b/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm @@ -9,7 +9,7 @@ class ResultSet is "Reaction::InterfaceModel::Collection::Virtual", which { "Reaction::InterfaceModel::Collection::DBIC::Role::Where"; - implements _build_default_action_class_prefix => as { + implements _build__default_action_class_prefix => as { shift->_im_class; }; diff --git a/lib/Reaction/InterfaceModel/Object.pm b/lib/Reaction/InterfaceModel/Object.pm index 48d46ca..fce4fd2 100644 --- a/lib/Reaction/InterfaceModel/Object.pm +++ b/lib/Reaction/InterfaceModel/Object.pm @@ -19,7 +19,7 @@ class Object which { ); #DBIC::Collection would override this to use result_class for example - implements _build_default_action_class_prefix => as { + implements _build__default_action_class_prefix => as { my $self = shift; ref $self || $self; }; @@ -40,7 +40,7 @@ class Object which { #little trick in case we call it in class context! my $prefix = ref $self ? $self->_default_action_class_prefix : - $self->_build_default_action_class_prefix; + $self->_build__default_action_class_prefix; return join "::", $prefix, 'Action', $action; }; diff --git a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm index 7e81b10..8df719b 100644 --- a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm +++ b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm @@ -29,20 +29,20 @@ class DBIC, which { has builtin_object_actions => (isa => "HashRef", is => "rw", lazy_build => 1); has builtin_collection_actions => (isa => "HashRef", is => "rw", lazy_build => 1); - implements build_object_actions => as { {} }; - implements build_collection_actions => as { {} }; + implements _build_object_actions => as { {} }; + implements _build_collection_actions => as { {} }; - implements build_default_object_actions => as { [ qw/Update Delete/ ] }; - implements build_default_collection_actions => as { [ qw/Create DeleteAll/ ] }; + implements _build_default_object_actions => as { [ qw/Update Delete/ ] }; + implements _build_default_collection_actions => as { [ qw/Create DeleteAll/ ] }; - implements build_builtin_object_actions => as { + implements _build_builtin_object_actions => as { { Update => { name => 'Update', base => Update }, Delete => { name => 'Delete', base => Delete, attributes => [] }, }; }; - implements build_builtin_collection_actions => as { + implements _build_builtin_collection_actions => as { { Create => {name => 'Create', base => Create }, DeleteAll => {name => 'DeleteAll', base => DeleteAll, attributes => [] } @@ -50,7 +50,7 @@ class DBIC, which { }; implements _all_object_actions => as { - my $self = shift; + my $self = shift; return $self->merge_hashes ($self->builtin_object_actions, $self->object_actions); }; @@ -161,7 +161,7 @@ class DBIC, which { unless($model && $schema); Class::MOP::load_class( $base ); Class::MOP::load_class( $schema ); - my $meta = eval {Class::MOP::load_class($model); } ? + my $meta = eval { Class::MOP::load_class($model); } ? $model->meta : $base->meta->create($model, superclasses => [ $base ]); # sources => undef, #default to qr/./ @@ -380,7 +380,7 @@ class DBIC, which { my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;; $meta->make_mutable if $meta->is_immutable; - $meta->add_method(_build_im_class => sub{ $object } ); + $meta->add_method(_build__im_class => sub{ $object } ); #XXX as a default pass the domain model as a target_model until i come up with something #better through the coercion method my $def_act_args = sub { @@ -844,6 +844,7 @@ class DBIC, which { }; } #use Data::Dumper; + #print STDERR "\n" .$attr_name ." - ". $object . "\n"; #print STDERR Dumper(\%attr_opts); return \%attr_opts; }; diff --git a/lib/Reaction/Meta/Attribute.pm b/lib/Reaction/Meta/Attribute.pm index 01540e0..16e5ed9 100644 --- a/lib/Reaction/Meta/Attribute.pm +++ b/lib/Reaction/Meta/Attribute.pm @@ -7,39 +7,26 @@ extends 'Moose::Meta::Attribute'; #is => 'Bool' ? or leave it open has lazy_fail => (is => 'ro', reader => 'is_lazy_fail', required => 1, default => 0); -has lazy_build => - (is => 'ro', reader => 'is_lazy_build', required => 1, default => 0); around _process_options => sub { my $super = shift; my ($class, $name, $options) = @_; - my $fail = $options->{lazy_fail}; #will this autovivify? - my $build = $options->{lazy_build}; + my $fail = $options->{lazy_fail}; - if ( $fail || $build) { + if ( $fail ) { confess("You may not use both lazy_build and lazy_fail for one attribute") - if $fail && $build; - confess("You may not supply a default value when using lazy_build or lazy_fail") - if exists $options->{default}; + if $fail && $options->{lazy_build}; $options->{lazy} = 1; $options->{required} = 1; - - my $builder = ($name =~ /^_/) ? "_build${name}" : "build_${name}"; - $options->{default} = $fail ? - sub { confess "${name} must be provided before calling reader" } : - sub{ shift->$builder }; - - $options->{clearer} ||= ($name =~ /^_/) ? "_clear${name}" : "clear_${name}" - if $build; + $options->{default} = sub { confess "${name} must be provided before calling reader" }; } #we are using this everywhere so might as well move it here. $options->{predicate} ||= ($name =~ /^_/) ? "_has${name}" : "has_${name}" if !$options->{required} || $options->{lazy}; - $super->($class, $name, $options); }; @@ -57,14 +44,6 @@ Reaction::Meta::Attribute has description => (is => 'rw', isa => 'Str', lazy_fail => 1); - # OR - has description => (is => 'rw', isa => 'Str', lazy_build => 1); - sub build_description{ "My Description" } - - # OR - has _description => (is => 'rw', isa => 'Str', lazy_build => 1); - sub _build_description{ "My Description" } - =head1 Method-naming conventions Reaction::Meta::Attribute will never override the values you set for method names, @@ -76,10 +55,10 @@ either "_has" or "_build". Otherwise the method names will be in the form of the attribute names preceeded by "has_" or "build_". e.g. #auto generates "_has_description" and expects "_build_description" - has _description => (is => 'rw', isa => 'Str', lazy_build => 1); + has _description => (is => 'rw', isa => 'Str', lazy_fail => 1); #auto generates "has_description" and expects "build_description" - has description => (is => 'rw', isa => 'Str', lazy_build => 1); + has description => (is => 'rw', isa => 'Str', lazy_fail => 1); =head2 Predicate generation @@ -88,12 +67,7 @@ generated for them if one is not already specified. =head2 lazy_fail -=head2 lazy_build - -lazy_build will lazily build to the return value of a user-supplied builder sub - The builder sub will recieve C<$self> as the first argument. - -lazy_fail will simply fail if it is called without first having set the value. +lazy_fail will fail if it is called without first having set the value. =head1 AUTHORS diff --git a/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm b/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm index 8a52409..4bef225 100644 --- a/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm +++ b/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm @@ -16,6 +16,8 @@ class ParameterAttribute is 'Reaction::Meta::Attribute', which { my ($self, $object, $value) = @_; confess "Can't check_valid_value when no valid_values set" unless $self->has_valid_values; + confess join " - ", blessed($object), $self->name + unless ref $self->valid_values; my $valid = $self->valid_values->($object, $self); if ($self->type_constraint && ($self->type_constraint->name eq 'ArrayRef' diff --git a/lib/Reaction/UI/CRUDController.pm b/lib/Reaction/UI/CRUDController.pm index 1ff7d88..554d588 100644 --- a/lib/Reaction/UI/CRUDController.pm +++ b/lib/Reaction/UI/CRUDController.pm @@ -15,7 +15,7 @@ has 'collection_name' => (isa => 'Str', is => 'rw', required => 1); has action_viewport_map => (isa => 'HashRef', is => 'rw', lazy_build => 1); has action_viewport_args => (isa => 'HashRef', is => 'rw', lazy_build => 1); -sub build_action_viewport_map { +sub _build_action_viewport_map { return { list => ListView, view => ObjectView, @@ -26,7 +26,7 @@ sub build_action_viewport_map { }; } -sub build_action_viewport_args { +sub _build_action_viewport_args { my $self = shift; return { list => { action_prototypes => diff --git a/lib/Reaction/UI/LayoutSet.pm b/lib/Reaction/UI/LayoutSet.pm index b19c92b..639af3b 100644 --- a/lib/Reaction/UI/LayoutSet.pm +++ b/lib/Reaction/UI/LayoutSet.pm @@ -12,7 +12,7 @@ class LayoutSet which { has 'source_file' => (is => 'rw', lazy_fail => 1); has 'file_extension'=> (isa => 'Str', is => 'rw', lazy_build => 1); - implements build_file_extension => as { 'html' }; + implements _build_file_extension => as { 'html' }; implements 'BUILD' => as { my ($self, $args) = @_; diff --git a/lib/Reaction/UI/LayoutSet/TT.pm b/lib/Reaction/UI/LayoutSet/TT.pm index b77d0d5..e5430f0 100644 --- a/lib/Reaction/UI/LayoutSet/TT.pm +++ b/lib/Reaction/UI/LayoutSet/TT.pm @@ -8,7 +8,7 @@ class TT is LayoutSet, which { has 'tt_view' => (is => 'rw', isa => View, lazy_fail => 1); - implements build_file_extension => as { 'tt' }; + implements _build_file_extension => as { 'tt' }; implements 'BUILD' => as { my ($self, $args) = @_; diff --git a/lib/Reaction/UI/View.pm b/lib/Reaction/UI/View.pm index 77d0699..1f7c00c 100644 --- a/lib/Reaction/UI/View.pm +++ b/lib/Reaction/UI/View.pm @@ -19,6 +19,16 @@ class View which { has 'rendering_context_class' => (is => 'ro', lazy_build => 1); + implements '_build_layout_set_class' => as { + my ($self) = @_; + return $self->find_related_class('LayoutSet'); + }; + + implements '_build_rendering_context_class' => as { + my ($self) = @_; + return $self->find_related_class('RenderingContext'); + }; + implements 'COMPONENT' => as { my ($class, $app, $args) = @_; return $class->new(%{$args||{}}, app => $app); @@ -118,11 +128,6 @@ class View which { confess "Unable to find related ${rel} class for ${own_class}"; }; - implements 'build_layout_set_class' => as { - my ($self) = @_; - return $self->find_related_class('LayoutSet'); - }; - implements 'layout_set_args_for' => as { my ($self, $name) = @_; return (name => $name, search_path => $self->layout_search_path); @@ -146,11 +151,6 @@ class View which { ); }; - implements 'build_rendering_context_class' => as { - my ($self) = @_; - return $self->find_related_class('RenderingContext'); - }; - implements 'rendering_context_args_for' => as { return (); }; diff --git a/lib/Reaction/UI/ViewPort.pm b/lib/Reaction/UI/ViewPort.pm index 16a0068..03f915d 100644 --- a/lib/Reaction/UI/ViewPort.pm +++ b/lib/Reaction/UI/ViewPort.pm @@ -17,7 +17,7 @@ class ViewPort which { has ctx => (isa => 'Catalyst', is => 'ro', required => 1); has column_order => (is => 'rw'); - implements build_layout => as { + implements _build_layout => as { ''; }; diff --git a/lib/Reaction/UI/ViewPort/ActionForm.pm b/lib/Reaction/UI/ViewPort/ActionForm.pm index 373b81d..484b5c6 100644 --- a/lib/Reaction/UI/ViewPort/ActionForm.pm +++ b/lib/Reaction/UI/ViewPort/ActionForm.pm @@ -64,18 +64,18 @@ class ActionForm is 'Reaction::UI::ViewPort', which { my @field_map; my $action = $self->action; foreach my $attr ($action->parameter_attributes) { - push(@field_map, $self->build_fields_for($attr => $args)); + push(@field_map, $self->_build_fields_for($attr => $args)); } $self->_field_map({ @field_map }); } $self->close_label($self->close_label_close); }; - implements build_fields_for => as { + implements _build_fields_for => as { my ($self, $attr, $args) = @_; my $attr_name = $attr->name; #TODO: DOCUMENT ME!!!!!!!!!!!!!!!!! - my $builder = "build_fields_for_name_${attr_name}"; + my $builder = "_build_fields_for_name_${attr_name}"; my @fields; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); # re-use coderef from can() @@ -90,7 +90,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which { foreach my $class ($name->meta->class_precedence_list) { my $mangled_name = $class; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); last CONSTRAINT; @@ -103,7 +103,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which { } my $mangled_name = $name; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); last CONSTRAINT; @@ -112,7 +112,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which { $constraint = $constraint->parent; } if (!defined($constraint)) { - confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_ method for type or any supertype"; + confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_ method for type or any supertype"; } } else { confess "Can't build field ${attr} without $builder method or type constraint"; @@ -120,11 +120,11 @@ class ActionForm is 'Reaction::UI::ViewPort', which { return @fields; }; - implements build_field_map => as { + implements _build_field_map => as { confess "Lazy field map building not supported by default"; }; - implements build_ordered_fields => as { + implements _build_ordered_fields => as { my $self = shift; my $ordered = $self->sort_by_spec($self->column_order, [keys %{$self->_field_map}]); return [@{$self->_field_map}{@$ordered}]; @@ -206,7 +206,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which { } }; - implements build_simple_field => as { + implements _build_simple_field => as { my ($self, $class, $attr, $args) = @_; my $attr_name = $attr->name; my %extra; @@ -224,72 +224,72 @@ class ActionForm is 'Reaction::UI::ViewPort', which { return ($attr_name => $field); }; - implements build_fields_for_type_Num => as { + implements _build_fields_for_type_Num => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Number, $attr, $args); + return $self->_build_simple_field(Number, $attr, $args); }; - implements build_fields_for_type_Int => as { + implements _build_fields_for_type_Int => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Number, $attr, $args); + return $self->_build_simple_field(Number, $attr, $args); }; - implements build_fields_for_type_Bool => as { + implements _build_fields_for_type_Bool => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Boolean, $attr, $args); + return $self->_build_simple_field(Boolean, $attr, $args); }; - implements build_fields_for_type_File => as { + implements _build_fields_for_type_File => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(File, $attr, $args); + return $self->_build_simple_field(File, $attr, $args); }; - implements build_fields_for_type_Str => as { + implements _build_fields_for_type_Str => as { my ($self, $attr, $args) = @_; if ($attr->has_valid_values) { # There's probably a better way to do this - return $self->build_simple_field(ChooseOne, $attr, $args); + return $self->_build_simple_field(ChooseOne, $attr, $args); } - return $self->build_simple_field(Text, $attr, $args); + return $self->_build_simple_field(Text, $attr, $args); }; - implements build_fields_for_type_SimpleStr => as { + implements _build_fields_for_type_SimpleStr => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(String, $attr, $args); + return $self->_build_simple_field(String, $attr, $args); }; - implements build_fields_for_type_Password => as { + implements _build_fields_for_type_Password => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Password, $attr, $args); + return $self->_build_simple_field(Password, $attr, $args); }; - implements build_fields_for_type_DateTime => as { + implements _build_fields_for_type_DateTime => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(DateTime, $attr, $args); + return $self->_build_simple_field(DateTime, $attr, $args); }; - implements build_fields_for_type_Enum => as { + implements _build_fields_for_type_Enum => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(ChooseOne, $attr, $args); + return $self->_build_simple_field(ChooseOne, $attr, $args); }; #implements build_fields_for_type_Reaction_InterfaceModel_Object => as { - implements build_fields_for_type_DBIx_Class_Row => as { + implements _build_fields_for_type_DBIx_Class_Row => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(ChooseOne, $attr, $args); + return $self->_build_simple_field(ChooseOne, $attr, $args); }; - implements build_fields_for_type_ArrayRef => as { + implements _build_fields_for_type_ArrayRef => as { my ($self, $attr, $args) = @_; if ($attr->has_valid_values) { - return $self->build_simple_field(ChooseMany, $attr, $args) + return $self->_build_simple_field(ChooseMany, $attr, $args) } else { - return $self->build_simple_field(HiddenArray, $attr, $args) + return $self->_build_simple_field(HiddenArray, $attr, $args) } }; - implements build_fields_for_type_DateTime_Spanset => as { + implements _build_fields_for_type_DateTime_Spanset => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(TimeRange, $attr, $args); + return $self->_build_simple_field(TimeRange, $attr, $args); }; no Moose; diff --git a/lib/Reaction/UI/ViewPort/DisplayField.pm b/lib/Reaction/UI/ViewPort/DisplayField.pm index 9f9f727..b8269dc 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField.pm @@ -20,7 +20,6 @@ class DisplayField is 'Reaction::UI::ViewPort', which { has value => ( is => 'rw', lazy_build => 1, trigger_adopt('value'), - clearer => 'clear_value', ); has label => (isa => 'Str', is => 'rw', lazy_build => 1); @@ -31,12 +30,12 @@ class DisplayField is 'Reaction::UI::ViewPort', which { confess "Should have both object and attribute or neither"; } }; - implements build_label => as { + implements _build_label => as { my ($self) = @_; return join(' ', map { ucfirst } split('_', $self->name)); }; - implements build_value => as { + implements _build_value => as { my ($self) = @_; if ($self->has_attribute) { my $reader = $self->attribute->get_read_method; diff --git a/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm b/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm index 1502fe6..4937a50 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm @@ -14,7 +14,7 @@ class Boolean, is DisplayField, which { default => sub { {true => 'Yes', false => 'No'} } ); - implements build_value_string => as { + implements _build_value_string => as { my $self = shift; my $val = $self->value; if(!defined $val || $val eq "" || "$val" eq '0'){ diff --git a/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm b/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm index 02383cf..10da547 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm @@ -13,11 +13,11 @@ class Collection is 'Reaction::UI::ViewPort::DisplayField', which { isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' }, ); - override build_value => sub { + override _build_value => sub { return [super()->members]; }; - implements build_value_names => as { + implements _build_value_names => as { my $self = shift; my @all = @{$self->value||[]}; my $meth = $self->value_map_method; diff --git a/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm b/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm index b8e8d89..a53e995 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm @@ -14,7 +14,7 @@ class DateTime is DisplayField, which { isa => 'Str', is => 'rw', required => 1, default => sub { "%F %H:%M:%S" } ); - implements build_value_string => as { + implements _build_value_string => as { my $self = shift; my $value = eval { $self->value }; return '' unless $self->has_value; diff --git a/lib/Reaction/UI/ViewPort/DisplayField/List.pm b/lib/Reaction/UI/ViewPort/DisplayField/List.pm index 76fa250..6de2c15 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField/List.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField/List.pm @@ -14,15 +14,15 @@ class List is DisplayField, which { isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' }, ); - override build_value => sub { + override _build_value => sub { return super() || []; }; - implements build_value_names => as { + implements _build_value_names => as { my $self = shift; my @all = @{$self->value||[]}; my $meth = $self->value_map_method; - my @names = map { blessed $_ ? $_->$meth : $_ } @all; + my @names = map { blessed($_) ? $_->$meth : $_ } @all; return [ sort @names ]; }; diff --git a/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm b/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm index 9700ac0..da34dff 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm @@ -14,11 +14,11 @@ class RelatedObject is DisplayField, which { isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' }, ); - implements build_value_string => as { + implements _build_value_string => as { my $self = shift; my $meth = $self->value_map_method; my $value = $self->value; - return blessed $value ? $value->$meth : $value; + return blessed($value) ? $value->$meth : $value; }; }; diff --git a/lib/Reaction/UI/ViewPort/Field.pm b/lib/Reaction/UI/ViewPort/Field.pm index 99a51f3..f0fa0f0 100644 --- a/lib/Reaction/UI/ViewPort/Field.pm +++ b/lib/Reaction/UI/ViewPort/Field.pm @@ -40,14 +40,14 @@ class Field is 'Reaction::UI::ViewPort', which { } }; - implements build_label => as { + implements _build_label => as { my ($self) = @_; my $label = join(' ', map { ucfirst } split('_', $self->name)); # print STDERR "Field " . $self->name . " has label '$label'\n"; return $label; }; - implements build_value => as { + implements _build_value => as { my ($self) = @_; if ($self->has_attribute) { my $reader = $self->attribute->get_read_method; diff --git a/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm b/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm index 9337a3c..a391144 100644 --- a/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm +++ b/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm @@ -35,7 +35,7 @@ class ChooseMany is 'Reaction::UI::ViewPort::Field::ChooseOne', which { } }; - override build_value => sub { + override _build_value => sub { return super() || []; }; diff --git a/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm b/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm index 703a26f..a44314e 100644 --- a/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm +++ b/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm @@ -34,12 +34,12 @@ class ChooseOne is 'Reaction::UI::ViewPort::Field', which { } }; - implements build_valid_values => as { + implements _build_valid_values => as { my $self = shift; return [ $self->attribute->all_valid_values($self->action) ]; }; - implements build_value_choices => sub{ + implements _build_value_choices => sub{ my $self = shift; my @pairs = map{{value => $self->obj_to_str($_), name => $self->obj_to_name($_)}} @{ $self->valid_values }; diff --git a/lib/Reaction/UI/ViewPort/Field/DateTime.pm b/lib/Reaction/UI/ViewPort/Field/DateTime.pm index 6d2958f..4c34483 100644 --- a/lib/Reaction/UI/ViewPort/Field/DateTime.pm +++ b/lib/Reaction/UI/ViewPort/Field/DateTime.pm @@ -19,7 +19,7 @@ class DateTime is 'Reaction::UI::ViewPort::Field', which { isa => 'Str', is => 'rw', required => 1, default => sub { "%F %H:%M:%S" } ); - implements build_value_string => as { + implements _build_value_string => as { my $self = shift; # XXX diff --git a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm index fb11841..6f6573e 100644 --- a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm +++ b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm @@ -26,7 +26,7 @@ class TimeRange is 'Reaction::UI::ViewPort::Field', which { is_weak_ref => 1 ); - implements build_value_string => as { + implements _build_value_string => as { my $self = shift; #return '' unless $self->has_value; #return $self->value_string; diff --git a/lib/Reaction/UI/ViewPort/GridView.pm b/lib/Reaction/UI/ViewPort/GridView.pm index 65959c2..fd9ab20 100644 --- a/lib/Reaction/UI/ViewPort/GridView.pm +++ b/lib/Reaction/UI/ViewPort/GridView.pm @@ -30,9 +30,9 @@ class GridView is 'Reaction::UI::ViewPort', which { shift->clear_entities; #clear the entitiesis the current collection changes, duh }; - implements build_entity_class => as { Entity }; + implements _build_entity_class => as { Entity }; - implements build_field_order => as { + implements _build_field_order => as { my ($self) = @_; my %excluded = map { $_ => undef } @{ $self->has_exclude_fields ? $self->exclude_fields : [] }; @@ -60,11 +60,11 @@ class GridView is 'Reaction::UI::ViewPort', which { return $ordered; }; - implements build_current_collection => as { + implements _build_current_collection => as { shift->collection; }; - implements build_field_labels => as { + implements _build_field_labels => as { my $self = shift; my %labels; for my $field ( @{$self->field_order}){ @@ -73,7 +73,7 @@ class GridView is 'Reaction::UI::ViewPort', which { return \%labels; }; - implements build_entities => as { + implements _build_entities => as { my ($self) = @_; my (@entities, $i); my $args = $self->has_entity_args ? $self->entity_args : {}; diff --git a/lib/Reaction/UI/ViewPort/GridView/Action.pm b/lib/Reaction/UI/ViewPort/GridView/Action.pm index a4eeab3..51ae09e 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Action.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Action.pm @@ -15,7 +15,7 @@ class Action is 'Reaction::UI::ViewPort', which { $self->label( $self->label->($self->target) ) if ref $self->label eq 'CODE'; }; - implements build_uri => as{ + implements _build_uri => as{ my $self = shift; my $c = $self->ctx; my ($c_name, $a_name, @rest) = @{ $self->action->($self->target, $c) }; diff --git a/lib/Reaction/UI/ViewPort/GridView/Entity.pm b/lib/Reaction/UI/ViewPort/GridView/Entity.pm index 0437eb6..3011f7f 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Entity.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Entity.pm @@ -26,7 +26,7 @@ class Entity is 'Reaction::UI::ViewPort', which { $self->field_args( {Field => $field_args} ) if ref $field_args; }; - implements build_fields => as { + implements _build_fields => as { my ($self) = @_; my $obj = $self->object; my $args = $self->has_field_args ? $self->field_args : {}; @@ -48,7 +48,7 @@ class Entity is 'Reaction::UI::ViewPort', which { implements get_builder_for => as { my ($self, $attr) = @_; my $attr_name = $attr->name; - my $builder = "build_fields_for_name_${attr_name}"; + my $builder = "_build_fields_for_name_${attr_name}"; return $builder if $self->can($builder); if ($attr->has_type_constraint) { my $constraint = $attr->type_constraint; @@ -61,7 +61,7 @@ class Entity is 'Reaction::UI::ViewPort', which { foreach my $class ($name->meta->class_precedence_list) { my $mangled_name = $class; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; return $builder if $self->can($builder); } } @@ -71,13 +71,13 @@ class Entity is 'Reaction::UI::ViewPort', which { } my $mangled_name = $name; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; return $builder if $self->can($builder); } $constraint = $constraint->parent; } if (!defined($constraint)) { - confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_ method for type or any supertype"; + confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_ method for type or any supertype"; } } else { confess "Can't build field ${attr} without $builder method or type constraint"; @@ -85,7 +85,7 @@ class Entity is 'Reaction::UI::ViewPort', which { }; - implements build_simple_field => as { + implements _build_simple_field => as { my ($self, $class, $obj, $attr, $args) = @_; my $attr_name = $attr->name; my %extra; @@ -102,76 +102,76 @@ class Entity is 'Reaction::UI::ViewPort', which { ); }; - implements build_fields_for_type_Num => as { + implements _build_fields_for_type_Num => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/number' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(Number, $obj, $attr, $args); + return $self->_build_simple_field(Number, $obj, $attr, $args); }; - implements build_fields_for_type_Int => as { + implements _build_fields_for_type_Int => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/number' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(Number, $obj, $attr, $args); + return $self->_build_simple_field(Number, $obj, $attr, $args); }; - implements build_fields_for_type_Bool => as { + implements _build_fields_for_type_Bool => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/boolean' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(Boolean, $obj, $attr, $args); + return $self->_build_simple_field(Boolean, $obj, $attr, $args); }; - implements build_fields_for_type_Password => as { return }; + implements _build_fields_for_type_Password => as { return }; - implements build_fields_for_type_Str => as { + implements _build_fields_for_type_Str => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/string' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(String, $obj, $attr, $args); + return $self->_build_simple_field(String, $obj, $attr, $args); }; - implements build_fields_for_type_SimpleStr => as { + implements _build_fields_for_type_SimpleStr => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/string' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(String, $obj, $attr, $args); + return $self->_build_simple_field(String, $obj, $attr, $args); }; - implements build_fields_for_type_DateTime => as { + implements _build_fields_for_type_DateTime => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/date_time' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(DateTime, $obj, $attr, $args); + return $self->_build_simple_field(DateTime, $obj, $attr, $args); }; - implements build_fields_for_type_Enum => as { + implements _build_fields_for_type_Enum => as { my ($self, $obj, $attr, $args) = @_; $args->{Field}{$attr->name}{layout} = 'value/string' unless( exists $args->{Field}{$attr->name} && exists $args->{Field}{$attr->name}{layout} && defined $args->{Field}{$attr->name}{layout} ); - return $self->build_simple_field(String, $obj, $attr, $args); + return $self->_build_simple_field(String, $obj, $attr, $args); }; }; diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm index 1114385..c6befc1 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm @@ -10,9 +10,9 @@ role Actions, which { has actions => (is => 'ro', isa => 'ArrayRef', lazy_build => 1); has action_prototypes => (is => 'ro', isa => 'ArrayRef', lazy_build => 1); - implements build_action_prototypes => as { [] }; + implements _build_action_prototypes => as { [] }; - implements build_actions => as { + implements _build_actions => as { my ($self) = @_; my (@act, $i); my $ctx = $self->ctx; diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm index 2f36275..c77ede3 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm @@ -10,9 +10,9 @@ role Actions, which { has actions => (is => 'ro', isa => 'ArrayRef', lazy_build => 1); has action_prototypes => (is => 'ro', isa => 'ArrayRef', lazy_build => 1); - implements build_action_prototypes => as { [] }; + implements _build_action_prototypes => as { [] }; - implements build_actions => as { + implements _build_actions => as { my ($self) = @_; my (@act, $i); my $ctx = $self->ctx; diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm index 59a6611..86b505e 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm @@ -7,13 +7,13 @@ role Order, which { has order_by => (isa => 'Str', is => 'rw', trigger_adopt('order_by')); has order_by_desc => (isa => 'Int', is => 'rw', trigger_adopt('order_by'), lazy_build => 1); - implements build_order_by_desc => as { 0 }; + implements _build_order_by_desc => as { 0 }; implements adopt_order_by => as { shift->clear_current_collection; }; - around build_current_collection => sub { + around _build_current_collection => sub { my $orig = shift; my ($self) = @_; my $collection = $orig->(@_); diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm index c14b0a8..24841ba 100644 --- a/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm +++ b/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm @@ -12,20 +12,23 @@ role Pager, which { has pager => (isa => 'Data::Page', is => 'rw', lazy_build => 1); has page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page')); has per_page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page')); + has per_page_max => (isa => 'Int', is => 'rw', lazy_build => 1); - implements build_page => as { 1 }; - implements build_per_page => as { 10 }; + implements _build_page => as { 1 }; + implements _build_per_page => as { 10 }; + implements _build_per_page_max => as { 100 }; - implements build_pager => as { shift->current_collection->pager }; + implements _build_pager => as { shift->current_collection->pager }; implements adopt_page => as { my ($self) = @_; #$self->clear_paged_collection; - $self->clear_current_collection; + $self->clear_pager; + $self->clear_current_collection; }; - around accept_events => sub { ('page', shift->(@_)); }; + around accept_events => sub { ('page','per_page', shift->(@_)); }; #implements build_paged_collection => as { # my ($self) = @_; @@ -33,7 +36,7 @@ role Pager, which { # return $collection->where(undef, {rows => $self->per_page})->page($self->page); #}; - around build_current_collection => sub { + around _build_current_collection => sub { my $orig = shift; my ($self) = @_; my $collection = $orig->(@_); diff --git a/lib/Reaction/UI/ViewPort/ListView.pm b/lib/Reaction/UI/ViewPort/ListView.pm index 3d21ad6..f20f555 100644 --- a/lib/Reaction/UI/ViewPort/ListView.pm +++ b/lib/Reaction/UI/ViewPort/ListView.pm @@ -13,7 +13,7 @@ class ListView is 'Reaction::UI::ViewPort::GridView', which { #If I decide that object actions and collection actions should be #lumped together i oculd move these into the collection action role #ooor we could create a third role that does this, but gah, no? - implements build_entity_class => as { WithActions }; + implements _build_entity_class => as { WithActions }; #You'se has to goes aways. sorry. #if i saved the args as an attribute i could probably get around this.... diff --git a/lib/Reaction/UI/ViewPort/ObjectView.pm b/lib/Reaction/UI/ViewPort/ObjectView.pm index 3b101e4..a9e895f 100644 --- a/lib/Reaction/UI/ViewPort/ObjectView.pm +++ b/lib/Reaction/UI/ViewPort/ObjectView.pm @@ -35,7 +35,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which { my $object = $self->object; my %excluded = map{$_ => 1} @{$self->exclude_fields}; for my $attr (grep { !$excluded{$_->name} } $object->parameter_attributes) { - push(@field_map, $self->build_fields_for($attr => $args)); + push(@field_map, $self->_build_fields_for($attr => $args)); } my %field_map = @field_map; @@ -43,10 +43,10 @@ class ObjectView is 'Reaction::UI::ViewPort', which { } }; - implements build_fields_for => as { + implements _build_fields_for => as { my ($self, $attr, $args) = @_; my $attr_name = $attr->name; - my $builder = "build_fields_for_name_${attr_name}"; + my $builder = "_build_fields_for_name_${attr_name}"; my @fields; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); # re-use coderef from can() @@ -61,7 +61,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which { foreach my $class ($name->meta->class_precedence_list) { my $mangled_name = $class; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); last CONSTRAINT; @@ -74,7 +74,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which { } my $mangled_name = $name; $mangled_name =~ s/:+/_/g; - my $builder = "build_fields_for_type_${mangled_name}"; + my $builder = "_build_fields_for_type_${mangled_name}"; if ($self->can($builder)) { @fields = $self->$builder($attr, $args); last CONSTRAINT; @@ -83,7 +83,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which { $constraint = $constraint->parent; } if (!defined($constraint)) { - confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_ method for type or any supertype"; + confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_ method for type or any supertype"; } } else { confess "Can't build field ${attr} without $builder method or type constraint"; @@ -95,13 +95,13 @@ class ObjectView is 'Reaction::UI::ViewPort', which { confess "Lazy field map building not supported by default"; }; - implements build_ordered_fields => as { + implements _build_ordered_fields => as { my $self = shift; my $ordered = $self->sort_by_spec($self->column_order, [keys %{$self->_field_map}]); return [@{$self->_field_map}{@$ordered}]; }; - implements build_simple_field => as { + implements _build_simple_field => as { my ($self, $class, $attr, $args) = @_; my $attr_name = $attr->name; my %extra; @@ -119,56 +119,56 @@ class ObjectView is 'Reaction::UI::ViewPort', which { return ($attr_name => $field); }; - implements build_fields_for_type_Num => as { + implements _build_fields_for_type_Num => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Number, $attr, $args); + return $self->_build_simple_field(Number, $attr, $args); }; - implements build_fields_for_type_Int => as { + implements _build_fields_for_type_Int => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Number, $attr, $args); + return $self->_build_simple_field(Number, $attr, $args); }; - implements build_fields_for_type_Bool => as { + implements _build_fields_for_type_Bool => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Boolean, $attr, $args); + return $self->_build_simple_field(Boolean, $attr, $args); }; - implements build_fields_for_type_Password => as { return }; + implements _build_fields_for_type_Password => as { return }; - implements build_fields_for_type_Str => as { + implements _build_fields_for_type_Str => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(String, $attr, $args); + return $self->_build_simple_field(String, $attr, $args); }; - implements build_fields_for_type_SimpleStr => as { + implements _build_fields_for_type_SimpleStr => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(String, $attr, $args); + return $self->_build_simple_field(String, $attr, $args); }; - implements build_fields_for_type_DateTime => as { + implements _build_fields_for_type_DateTime => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(DateTime, $attr, $args); + return $self->_build_simple_field(DateTime, $attr, $args); }; - implements build_fields_for_type_Enum => as { + implements _build_fields_for_type_Enum => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(String, $attr, $args); + return $self->_build_simple_field(String, $attr, $args); }; - implements build_fields_for_type_ArrayRef => as { + implements _build_fields_for_type_ArrayRef => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(List, $attr, $args) + return $self->_build_simple_field(List, $attr, $args) }; - implements build_fields_for_type_Reaction_InterfaceModel_Collection => as { + implements _build_fields_for_type_Reaction_InterfaceModel_Collection => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(Collection, $attr, $args) + return $self->_build_simple_field(Collection, $attr, $args) }; - implements build_fields_for_type_Reaction_InterfaceModel_Object => as { + implements _build_fields_for_type_Reaction_InterfaceModel_Object => as { my ($self, $attr, $args) = @_; - return $self->build_simple_field(RelatedObject, $attr, $args); + return $self->_build_simple_field(RelatedObject, $attr, $args); }; no Moose; diff --git a/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm b/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm index 1ebc03b..ac61f3e 100644 --- a/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm +++ b/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm @@ -62,7 +62,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { isa => 'HashRef', is => 'rw', init_arg => 'fields', clearer => '_clear_field_map', predicate => '_has_field_map', - set_or_lazy_build('field_map'), + lazy_build => 1, ); has on_next_callback => ( @@ -73,7 +73,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { implements fields => as { shift->_field_map }; - implements build_range_vps => as { [] }; + implements _build_range_vps => as { [] }; implements spanset => as { my ($self) = @_; @@ -112,7 +112,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { parent => $self }; my $count = scalar(@{$self->range_vps}); - my $field = $self->build_simple_field(TimeRange, 'range-'.$count, $args); + my $field = $self->_build_simple_field(TimeRange, 'range-'.$count, $args); my $d = DateTime::Format::Duration->new( pattern => '%s' ); if ($d->format_duration( $self->spanset->intersection($field->value)->duration ) > 0) { # XXX - Stop using the stash here? @@ -125,7 +125,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { } }; - implements build_field_map => as { + implements _build_field_map => as { my ($self) = @_; my %map; foreach my $field (@{$self->range_vps}) { @@ -137,7 +137,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { return \%map; }; - implements build_field_names => as { + implements _build_field_names => as { my ($self) = @_; return [ (map { $_->name } @{$self->range_vps}), @@ -192,7 +192,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { return !defined($error); }; - implements build_simple_field => as { + implements _build_simple_field => as { my ($self, $class, $name, $args) = @_; return $class->new( name => $name, @@ -202,29 +202,29 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which { ); }; - implements build_time_to => as { + implements _build_time_to => as { my ($self) = @_; - return $self->build_simple_field(DateTime, 'time_to', {}); + return $self->_build_simple_field(DateTime, 'time_to', {}); }; - implements build_time_from => as { + implements _build_time_from => as { my ($self) = @_; - return $self->build_simple_field(DateTime, 'time_from', {}); + return $self->_build_simple_field(DateTime, 'time_from', {}); }; - implements build_repeat_to => as { + implements _build_repeat_to => as { my ($self) = @_; - return $self->build_simple_field(DateTime, 'repeat_to', {}); + return $self->_build_simple_field(DateTime, 'repeat_to', {}); }; - implements build_repeat_from => as { + implements _build_repeat_from => as { my ($self) = @_; - return $self->build_simple_field(DateTime, 'repeat_from', {}); + return $self->_build_simple_field(DateTime, 'repeat_from', {}); }; - implements build_pattern => as { + implements _build_pattern => as { my ($self) = @_; - return $self->build_simple_field(String, 'pattern', {}); + return $self->_build_simple_field(String, 'pattern', {}); }; implements next => as { @@ -356,7 +356,7 @@ Arguments: $to_remove Arguments: $to_add -=head2 build_simple_field +=head2 _build_simple_field Arguments: $class, $name, $args where $class is an object, $name is a scalar and $args is a hashref diff --git a/lib/Reaction/UI/Widget/Field.pm b/lib/Reaction/UI/Widget/Field.pm index 6e3fb2f..1e5de08 100644 --- a/lib/Reaction/UI/Widget/Field.pm +++ b/lib/Reaction/UI/Widget/Field.pm @@ -7,8 +7,8 @@ class Field, which { has id => (isa => 'Str', is => 'ro', lazy_build => 1); has name => (isa => 'Str', is => 'ro', lazy_build => 1); - implements build_id => as { shift->viewport->event_id_for('value'); }; - implements build_name => as { shift->viewport->event_id_for('value'); }; + implements _build_id => as { shift->viewport->event_id_for('value'); }; + implements _build_name => as { shift->viewport->event_id_for('value'); }; widget renders [qw/label field message/ => { id => func('self', 'id'), @@ -44,11 +44,11 @@ Str, lazy builds. =head1 METHODS -=head2 build_id +=head2 _build_id Returns the viewport's C -=head2 build_name +=head2 _build_name Returns the viewport's C diff --git a/lib/Reaction/UI/Window.pm b/lib/Reaction/UI/Window.pm index ecf1e57..2bf4fc6 100644 --- a/lib/Reaction/UI/Window.pm +++ b/lib/Reaction/UI/Window.pm @@ -20,18 +20,18 @@ class Window which { is => 'ro', required => 1, default => sub { Reaction::UI::FocusStack->new }, ); - - implements build_view => as { + + implements _build_view => as { my ($self) = @_; return $self->ctx->view($self->view_name); }; - + implements flush => as { my ($self) = @_; $self->flush_events; $self->flush_view; }; - + implements flush_events => as { my ($self) = @_; my $ctx = $self->ctx; @@ -41,7 +41,7 @@ class Window which { $self->focus_stack->apply_events($ctx, $param_hash); } }; - + implements flush_view => as { my ($self) = @_; return if $self->ctx->res->status =~ /^3/ || length($self->ctx->res->body); @@ -52,7 +52,7 @@ class Window which { }; # required by old Renderer::XHTML - + implements render_viewport => as { my ($self, $vp) = @_; return unless $vp; @@ -79,7 +79,7 @@ Reaction::UI::Window - Container for rendering the UI elements in # More commonly, as Reaction::UI::RootController creates one for you: my $window = $ctx->stash->{window}; - # Resolve current events and render the view of the UI + # Resolve current events and render the view of the UI # elements of this Window: # This is called by the end action of Reaction::UI::RootController $window->flush(); diff --git a/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm b/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm index 9451c00..7a26358 100644 --- a/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm +++ b/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm @@ -15,7 +15,7 @@ has im_schema => (is =>'ro', isa => 'RTest::TestIM', lazy_build => 1); #when I have time I will write test cases that cover all the other bases #it's just kind of a pain in the ass right now and I am behind on a lot of other shit. -sub build_im_schema{ +sub _build_im_schema{ my $self = shift; my $reflector = Reaction::InterfaceModel::Reflector::DBIC->new; @@ -139,9 +139,9 @@ sub test_reflect_collection_for :Tests{ 'Reaction::InterfaceModel::Collection::Virtual::ResultSet', "Collection ISA virtual resultset" ); - Test::More::can_ok($collection, '_build_im_class'); + Test::More::can_ok($collection, '_build__im_class'); Test::More::is( - $collection->_build_im_class, + $collection->_build__im_class, "RTest::TestIM::${_}", "Collection has correct _im_class" ); @@ -247,9 +247,9 @@ sub test_reflect_submodel_action :Tests{ Test::More::isa_ok($member, $collection->_im_class); my $ctx = $self->simple_mock_context; - foreach my $action_name (qw/Update Delete Create/){ + foreach my $action_name (qw/Update Delete DeleteAll Create/){ - my $target_im = $action_name eq 'Create' ? $collection : $member; + my $target_im = $action_name =~ /(?:Create|DeleteAll)/ ? $collection : $member; my $action = $target_im->action_for($action_name, ctx => $ctx); Test::More::isa_ok( $action, "Reaction::InterfaceModel::Action", @@ -260,14 +260,15 @@ sub test_reflect_submodel_action :Tests{ "${action_name} action has correct name" ); - my $base = 'Reaction::InterfaceModel::Action::DBIC' . - ($action_name eq 'Create' ? '::ResultSet::Create' : "::Result::${action_name}"); - Test::More::isa_ok($action, $base, 'Create action has correct base'); + my $base = 'Reaction::InterfaceModel::Action::DBIC'. + ($action_name =~ /(?:Create|DeleteAll)/ + ? "::ResultSet::${action_name}" : "::Result::${action_name}"); + Test::More::isa_ok($action, $base, "${action_name} has correct base"); my %attrs = map { $_->name => $_ } $action->parameter_attributes; my $attr_num; - if($action_name eq 'Delete'){next; } + if($action_name =~ /Delete/){next; } elsif($sm eq "Bar"){$attr_num = 4; } elsif($sm eq "Baz"){$attr_num = 1; } elsif($sm eq "Foo"){$attr_num = 3; } -- cgit v1.2.3-54-g00ecf