minor style cleanups and non-destructive config merging in Controller
groditi [Tue, 6 May 2008 17:27:54 +0000 (17:27 +0000)]
lib/Reaction/UI/Controller.pm
lib/Reaction/UI/ViewPort/Action/Link.pm
lib/Reaction/UI/ViewPort/Collection.pm
lib/Reaction/UI/ViewPort/Object.pm

index 9093fd3..a6ff6ef 100644 (file)
@@ -22,7 +22,7 @@ sub push_viewport {
       if (my $conf_class = delete $vp_attr->{class}) {
         $class = $conf_class;
       }
-      %args = (%$vp_attr, @proto_args);
+      %args = %{ $self->merge_config_hashes($vp_attr, {@proto_args}) };
     } else {
       $class = $vp_attr;
       %args = @proto_args;
index 8bc8da8..c364fd7 100644 (file)
@@ -10,7 +10,7 @@ class Link is 'Reaction::UI::ViewPort', which {
   has target => (isa => 'Object',  is => 'rw', required   => 1);
   has action => (isa => 'CodeRef', is => 'rw', required   => 1);
 
-  implements BUILD => as{
+  implements BUILD => as {
     my $self = shift;
     $self->label( $self->label->($self->target) ) if ref $self->label eq 'CODE';
   };
index eba5f80..35701c5 100644 (file)
@@ -17,8 +17,9 @@ class Collection is 'Reaction::UI::ViewPort', which {
 
   implements BUILD => as {
     my ($self, $args) = @_;
-    my $member_args = delete $args->{Member};
-    $self->member_args( $member_args ) if ref $member_args;
+    if( my $member_args = delete $args->{Member} ){
+      $self->member_args( $member_args );
+    }
   };
 
   implements _build_member_args => as{ {} };
index c3bdd3c..5c56e90 100644 (file)
@@ -31,8 +31,9 @@ class Object is 'Reaction::UI::ViewPort', which {
 
   implements BUILD => as {
     my ($self, $args) = @_;
-    my $field_args = delete $args->{Field};
-    $self->field_args( $field_args ) if ref $field_args;
+    if( my $field_args = delete $args->{Field} ){
+      $self->field_args( $field_args );
+    }
   };
 
   implements _build_excluded_fields => as { [] };