changes so far for new moose / mop
groditi [Tue, 13 Nov 2007 21:43:36 +0000 (21:43 +0000)]
39 files changed:
Makefile.PL
lib/Reaction/Class.pm
lib/Reaction/InterfaceModel/Collection.pm
lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm
lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm
lib/Reaction/InterfaceModel/Object.pm
lib/Reaction/InterfaceModel/Reflector/DBIC.pm
lib/Reaction/Meta/Attribute.pm
lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm
lib/Reaction/UI/CRUDController.pm
lib/Reaction/UI/LayoutSet.pm
lib/Reaction/UI/LayoutSet/TT.pm
lib/Reaction/UI/View.pm
lib/Reaction/UI/ViewPort.pm
lib/Reaction/UI/ViewPort/ActionForm.pm
lib/Reaction/UI/ViewPort/DisplayField.pm
lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm
lib/Reaction/UI/ViewPort/DisplayField/Collection.pm
lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm
lib/Reaction/UI/ViewPort/DisplayField/List.pm
lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm
lib/Reaction/UI/ViewPort/Field.pm
lib/Reaction/UI/ViewPort/Field/ChooseMany.pm
lib/Reaction/UI/ViewPort/Field/ChooseOne.pm
lib/Reaction/UI/ViewPort/Field/DateTime.pm
lib/Reaction/UI/ViewPort/Field/TimeRange.pm
lib/Reaction/UI/ViewPort/GridView.pm
lib/Reaction/UI/ViewPort/GridView/Action.pm
lib/Reaction/UI/ViewPort/GridView/Entity.pm
lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm
lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm
lib/Reaction/UI/ViewPort/GridView/Role/Order.pm
lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm
lib/Reaction/UI/ViewPort/ListView.pm
lib/Reaction/UI/ViewPort/ObjectView.pm
lib/Reaction/UI/ViewPort/TimeRangeCollection.pm
lib/Reaction/UI/Widget/Field.pm
lib/Reaction/UI/Window.pm
t/lib/RTest/InterfaceModel/Reflector/DBIC.pm

index aec5ca2..db1b95f 100644 (file)
@@ -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';
index b2c0ad9..549ee15 100644 (file)
@@ -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 {
index 73f2f4e..9b962bd 100644 (file)
@@ -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
 
index efddcba..ee32997 100644 (file)
@@ -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 ];
index 3878992..89e55d6 100644 (file)
@@ -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;
   };
 
index 48d46ca..fce4fd2 100644 (file)
@@ -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;
   };
index 7e81b10..8df719b 100644 (file)
@@ -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;
   };
index 01540e0..16e5ed9 100644 (file)
@@ -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
 
index 8a52409..4bef225 100644 (file)
@@ -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'
index 1ff7d88..554d588 100644 (file)
@@ -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 =>
index b19c92b..639af3b 100644 (file)
@@ -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) = @_;
index b77d0d5..e5430f0 100644 (file)
@@ -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) = @_;
index 77d0699..1f7c00c 100644 (file)
@@ -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 ();
   };
index 16a0068..03f915d 100644 (file)
@@ -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 {
     '';
   };
 
index 373b81d..484b5c6 100644 (file)
@@ -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_<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_<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;
index 9f9f727..b8269dc 100644 (file)
@@ -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;
index 1502fe6..4937a50 100644 (file)
@@ -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'){
index 02383cf..10da547 100644 (file)
@@ -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;
index b8e8d89..a53e995 100644 (file)
@@ -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;
index 76fa250..6de2c15 100644 (file)
@@ -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 ];
   };
 
index 9700ac0..da34dff 100644 (file)
@@ -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;
   };
 
 };
index 99a51f3..f0fa0f0 100644 (file)
@@ -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;
index 9337a3c..a391144 100644 (file)
@@ -35,7 +35,7 @@ class ChooseMany is 'Reaction::UI::ViewPort::Field::ChooseOne', which {
     }
   };
 
-  override build_value => sub {
+  override _build_value => sub {
     return super() || [];
   };
 
index 703a26f..a44314e 100644 (file)
@@ -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 };
index 6d2958f..4c34483 100644 (file)
@@ -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
index fb11841..6f6573e 100644 (file)
@@ -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;
index 65959c2..fd9ab20 100644 (file)
@@ -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 : {};
index a4eeab3..51ae09e 100644 (file)
@@ -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) };
index 0437eb6..3011f7f 100644 (file)
@@ -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_<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_<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);
   };
 };
 
index 1114385..c6befc1 100644 (file)
@@ -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;
index 2f36275..c77ede3 100644 (file)
@@ -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;
index 59a6611..86b505e 100644 (file)
@@ -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->(@_);
index c14b0a8..24841ba 100644 (file)
@@ -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->(@_);
index 3d21ad6..f20f555 100644 (file)
@@ -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....
index 3b101e4..a9e895f 100644 (file)
@@ -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_<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_<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;
index 1ebc03b..ac61f3e 100644 (file)
@@ -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
index 6e3fb2f..1e5de08 100644 (file)
@@ -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<event_id_for('value')>
 
-=head2 build_name
+=head2 _build_name
 
 Returns the viewport's C<event_id_for('value')>
 
index ecf1e57..2bf4fc6 100644 (file)
@@ -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();
index 9451c00..7a26358 100644 (file)
@@ -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; }