]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Also infer the range when initializing a C::D::G::Atom object from an atom string
authorVincent Pit <vince@profvince.com>
Sun, 29 Nov 2009 13:11:07 +0000 (14:11 +0100)
committerVincent Pit <vince@profvince.com>
Sun, 29 Nov 2009 13:11:07 +0000 (14:11 +0100)
lib/CPANPLUS/Dist/Gentoo/Atom.pm

index 5cd01e3b3aa3f376a17f244079a1d3b8274ee46f..76af6fe787c27053c129932c461f6347417db175 100644 (file)
@@ -48,16 +48,16 @@ sub new {
 
  my %args = @_;
 
- my ($category, $name, $version);
+ my ($range, $category, $name, $version);
  if (defined $args{name}) {
-  ($category, $name, $version) = @args{qw/category name version/};
+  ($range, $category, $name, $version) = @args{qw/range category name version/};
   Carp::confess('Category unspecified') unless defined $category;
   /[^\w-]/ and Carp::confess('Invalid argument') for $name, $category;
  } elsif (defined $args{atom}) {
   my $atom = $args{atom};
-  $atom =~ m{^([\w-]+)/([\w-]+)-v?($version_rx)$}
+  $atom =~ m{^(<|<=|=|>=|>)?([\w-]+)/([\w-]+)(?-v?($version_rx))?$}
                                                or Carp::confess('Invalid atom');
-  ($category, $name, $version) = ($1, $2, $3);
+  ($range, $category, $name, $version) = ($1, $2, $3, $4);
  } else {
   Carp::confess('Not enough information for building an atom object');
  }
@@ -69,7 +69,6 @@ sub new {
   }
  }
 
- my $range = $args{range};
  if (defined $version) {
   if (defined $range) {
    Carp::confess("Invalid range $range")