]> git.vpit.fr Git - perl/modules/Sub-Prototype-Util.git/commitdiff
Importing Sub-Prototype-Util-0.03.tar.gz v0.03
authorVincent Pit <vince@profvince.com>
Sun, 29 Jun 2008 15:52:07 +0000 (17:52 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 29 Jun 2008 15:52:07 +0000 (17:52 +0200)
Changes
META.yml
README
lib/Sub/Prototype/Util.pm
t/10-flatten.t
t/11-recall.t

diff --git a/Changes b/Changes
index ea7744ea6192aaf6044ee043c0f7a6e4deeae928..ecf455ada0d69d8931be935dc4e550753424ed06 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,10 @@
 Revision history for Sub-Prototype-Util
 
+0.03    2008-04-06 22:20 UTC
+        + Fix : our doesn't exist in 5.005 (sigh).
+        + Fix : '_' prototype should use the current argument when it's
+                available and only resort to $_ when it's not.
+
 0.02    2008-04-06 16:40 UTC
         + Fix : Missing LICENSE in Makefile.PL.
         + Fix : Typos in POD.
index def74582c1303baa6cb828b4549cf39dd6826587..4014ea5a4c25a6c7756684da6f7e30ea3d37881d 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:                Sub-Prototype-Util
-version:             0.02
+version:             0.03
 abstract:            Prototype-related utility routines.
 license:             perl
 author:              
diff --git a/README b/README
index 70525e99e8dfd776fd6a6253fba461417aa5ee6d..2865eb14b37e835001f2396a8a3ecd4f33894bd3 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ NAME
     Sub::Prototype::Util - Prototype-related utility routines.
 
 VERSION
-    Version 0.02
+    Version 0.03
 
 SYNOPSIS
         use Sub::Prototype::Util qw/flatten recall/;
index 661d03d71cb1354f1c13f28a15f6e08c71fa2e37..2e2a5045a6f9fafadfb35492e42bfba9f7c0984c 100644 (file)
@@ -12,11 +12,13 @@ Sub::Prototype::Util - Prototype-related utility routines.
 
 =head1 VERSION
 
-Version 0.02
+Version 0.03
 
 =cut
 
-our $VERSION = '0.02';
+use vars qw/$VERSION/;
+
+$VERSION = '0.03';
 
 =head1 SYNOPSIS
 
@@ -78,7 +80,7 @@ sub flatten {
   } elsif ($p =~ /[\@\%]/) {
    push @args, @_;
    last;
-  } elsif ($p eq '_') {
+  } elsif ($p eq '_' && @_ == 0) {
    push @args, $_;
   } else {
    push @args, shift;
@@ -117,7 +119,7 @@ sub recall {
     last;
    } elsif ($p =~ /\&/) {
     push @args, 'sub{&{$a[' . $i . ']}}';
-   } elsif ($p eq '_') {
+   } elsif ($p eq '_' && $i >= @a) {
     push @args, '$_';
    } else {
     push @args, '$a[' . $i . ']';
index 05f56e7fa35f5fb97c1098a0018c03cf4ebf4838..8c23c3c105e390eaa0bf45b91a47ba43186735a0 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 26;
+use Test::More tests => 27;
 
 use Sub::Prototype::Util qw/flatten/;
 
@@ -40,9 +40,10 @@ my @tests = (
  [ '\&$',      'coderef', [ \&main::hlagh,  1 ], [ 'HLAGH',   1 ] ],
  [ '\[$@%]',   'class got scalarref',    [ \1 ], [ 1 ] ],
  [ '\[$@%]',   'class got arrayref',  [ [ 1 ] ], [ 1 ] ],
- [ '\[$@%]',   'class got hashref', [ { 1,2 } ], [ 1, 2 ] ]
+ [ '\[$@%]',   'class got hashref', [ { 1,2 } ], [ 1, 2 ] ],
+ [ '_',        '_ with argument',      [ 1, 2 ], [ 1 ] ]
 );
-my $l = [ '_', '$_', [ ] ];
+my $l = [ '_', '_ with no argument', [ ] ];
 $l->[3] = [ $l ];
 push @tests, $l;
 
index 3e3c7a28180f404ac5e997b68d5081a52b49aa92..492594615e7b137b5810d022dc5c562f5eacea2c 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3 + 12 + (($^V ge v5.10.0) ? 2 : 0);
+use Test::More tests => 3 + 12 + (($^V ge v5.10.0) ? 4 : 0);
 
 use Scalar::Util qw/set_prototype/;
 use Sub::Prototype::Util qw/recall/;
@@ -29,10 +29,15 @@ my @tests = (
  [ 'main::mygrep1', 'grep1', $g, $g, [ 3 .. 5 ] ],
  [ 'main::mygrep2', 'grep2', $g, $g, [ 3 .. 5 ] ],
 );
-sub myit { push @{$_->[2]}, 1; return 2 };
+sub myit { push @{$_[0]->[2]}, 3; return 4 };
 if ($^V ge v5.10.0) {
  set_prototype \&myit, '_';
- push @tests, [ 'main::myit', '_ prototype', [ ], [ 1 ], [ 2 ] ];
+ push @tests, [ 'main::myit', '_ with argument',
+                [ [ 1, 2, [ ] ], 5 ],
+                [ [ 1, 2, [ 3 ] ], 5 ],
+                [ 4 ]
+              ];
+ push @tests, [ 'main::myit', '_ with no argument', [ ], [ 3 ], [ 4 ] ];
 }
 
 for (@tests) {