Add test for modify-in-place usage of ->map, as well as an example in the pod docs.
Mike Whitaker [Wed, 15 Oct 2008 20:24:22 +0000 (20:24 +0000)]
lib/Moose/Autobox/Array.pm
t/001_basic.t

index 848fbfd..6234435 100644 (file)
@@ -232,6 +232,24 @@ This is a role to describe operations on the Array type.
 
 =item B<grep (\&block)>
 
+Note that, in both the above, $_ is in scope within the code block, as well as 
+being passed as $_[0]. As per CORE::map and CORE::grep, $_ is an alias to 
+the list value, so can be used to to modify the list, viz:
+
+    use Moose::Autobox;
+
+    my $foo = [1, 2, 3]; 
+    $foo->map( sub {$_++} ); 
+    print $foo->dump;
+
+yields
+
+   $VAR1 = [
+             2,
+             3,
+             4
+           ];
+        
 =item B<reverse>
 
 =item B<sort (?\&block)>
index 7ee4b93..4c18e6f 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 68;
+use Test::More tests => 69;
 
 BEGIN {
     use_ok('Moose::Autobox');
@@ -75,6 +75,10 @@ $a->map(sub { $_ + 2 }),
 
 is_deeply($a, [ 4, 2, 6, 78, 101, 2, 3 ], '... original value is unchanged');
 
+my $b = [1, 2, 3];
+$b->map(sub { $_++ } );
+is_deeply($b, [ 2, 3, 4 ], '... original value is changed');
+
 is_deeply(
 $a->reverse(),
 [ 3, 2, 101, 78, 6, 2, 4 ],