MemberAt cut over to rspace/rstrat
[scpubgit/DX.git] / lib / DX / ActionBuilder / Null.pm
index 0ac25b7..769903e 100644 (file)
@@ -6,10 +6,18 @@ with 'DX::Role::ActionBuilder';
 
 has target_path => (is => 'ro');
 
+around target_path => sub {
+  my ($orig, $self) = (shift, shift);
+  return undef unless ref($self);
+  return $self->$orig(@_);
+};
+
 sub can_set_value { 0 }
 
 sub action_for_set_value { undef }
 
+sub can_add_member { 0 }
+
 sub action_for_add_member { undef }
 
 sub action_for_set_member { undef }
@@ -27,8 +35,7 @@ sub specialize_for_member {
 
 sub apply_to_value {
   my ($self, $value) = @_;
-  my $new_value = $value->but_set_action_builder($self)
-                        ->but_set_identity_path($self->target_path);
+  my $new_value = $value->but_set_action_builder($self);
   return $new_value unless $new_value->isa('DX::Value::Dict');
   my %m = %{$new_value->members};
   return $new_value->but(