]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Allow zero as a suffix or revision index
authorVincent Pit <vince@profvince.com>
Sat, 5 Feb 2011 20:48:50 +0000 (21:48 +0100)
committerVincent Pit <vince@profvince.com>
Sat, 5 Feb 2011 20:48:50 +0000 (21:48 +0100)
lib/CPANPLUS/Dist/Gentoo/Version.pm
t/20-version.t

index d76bcb47df96ef041db48f4deb8253c3dfbf60dc..9b32f79548346a4d9c3b04e3909955c53cef40db 100644 (file)
@@ -28,10 +28,9 @@ use overload (
  '""'  => \&_stringify,
 );
 
-my $int_rx          = qr/[0-9]+/;
-my $positive_int_rx = qr/0*[1-9][0-9]*/;
-my $letter_rx       = qr/[a-zA-Z]/;
-my $dotted_num_rx   = qr/$int_rx(?:\.$int_rx)*/o;
+my $int_rx        = qr/[0-9]+/;
+my $letter_rx     = qr/[a-zA-Z]/;
+my $dotted_num_rx = qr/$int_rx(?:\.$int_rx)*/o;
 
 my @suffixes  = qw<alpha beta pre rc normal p>;
 my $suffix_rx = join '|', grep !/^normal$/, @suffixes;
@@ -39,14 +38,14 @@ $suffix_rx    = qr/(?:$suffix_rx)/o;
 
 our $version_rx = qr{
  $dotted_num_rx $letter_rx?
- (?:_$suffix_rx$positive_int_rx?)*
- (?:-r$positive_int_rx)?
+ (?:_$suffix_rx$int_rx?)*
+ (?:-r$int_rx)?
 }xo;
 
 my $capturing_version_rx = qr{
  ($dotted_num_rx) ($letter_rx)?
- ((?:_$suffix_rx$positive_int_rx?)*)
- (?:-r($positive_int_rx))?
+ ((?:_$suffix_rx$int_rx?)*)
+ (?:-r($int_rx))?
 }xo;
 
 =head1 METHODS
@@ -71,7 +70,7 @@ sub new {
     string   => $vstring,
     version  => [ split /\.+/, $1 ],
     letter   => $2,
-    suffixes => [ map /_($suffix_rx)($positive_int_rx)?/go, $3 ],
+    suffixes => [ map /_($suffix_rx)($int_rx)?/go, $3 ],
     revision => $4,
    }, $class;
   }
index bd48d7570f6df9b95edc1212b79e3da4976f5205..24a8fad6d139b9a7c873e39ebf25f2674a813ffb 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3 + (2 + 2 * 3) * (66 + 4 * 7);
+use Test::More tests => 3 + (2 + 2 * 3) * (69 + 4 * 7);
 
 use CPANPLUS::Dist::Gentoo::Version;
 
@@ -67,7 +67,9 @@ my @tests = (
   [ "1.1_${_}1",  "1.0_${_}2" =>  1 ],
  } qw(alpha beta pre rc)),
 
- [ '1.0',     '1.0_p'  => -1 ],
+ [ '1.0',     '1.0_p0' => -1 ],
+ [ '1.0',     '1.0_p1' => -1 ],
+ [ '1.0_p',   '1.0_p0' =>  0 ],
  [ '1.0a',    '1.0_p'  =>  1 ],
  [ '1.0',     '1.0_p1' => -1 ],
  [ '1.0_p1',  '1.0_p1' =>  0 ],
@@ -79,7 +81,6 @@ my @tests = (
  [ '1.0_beta1',  '1.0_pre1'  => -1 ],
  [ '1.0_pre1',   '1.0_rc1'   => -1 ],
  [ '1.0_rc1',    '1.0'       => -1 ],
- [ '1.0',        '1.0_p1'    => -1 ],
 
  [ '1.0_alpha', '1.0_alpha_alpha' =>  1 ],
  [ '1.0_beta',  '1.0_beta_beta'   =>  1 ],
@@ -93,11 +94,13 @@ my @tests = (
  [ '1.0_pre1_rc2', '1.0_pre1_rc2'    =>  0 ],
  [ '1.0_pre1_rc2', '1.0_pre1_rc3'    => -1 ],
 
+ [ '1.0',    '1.0-r0' =>  0 ],
  [ '1.0',    '1.0-r1' => -1 ],
  [ '1.0-r1', '1.0-r1' =>  0 ],
  [ '1.0-r1', '1.0-r2' => -1 ],
  [ '1.1-r1', '1.0-r2' =>  1 ],
 
+ [ '1.2_p0-r0',      '1.2_p',             0 ],
  [ '1.2_p1-r1',      '1.2_p1',            1 ],
  [ '1.2_p1-r1',      '1.2_p1_p1',        -1 ],
  [ '1.2_p1_pre2-r1', '1.2_p1-r1',        -1 ],