X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FCPANPLUS%2FDist%2FGentoo%2FMaps.pm;h=1aa7d85458442f641dcf21d7fa48e466778a853e;hb=77110d525f6b966b8f87c11669f177127e6930d9;hp=5323307c5f816828ad3a6c0b337d53dab68df422;hpb=c42a69fe4576fdfd38eb1b6a83ea5c050865429f;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/lib/CPANPLUS/Dist/Gentoo/Maps.pm b/lib/CPANPLUS/Dist/Gentoo/Maps.pm index 5323307..1aa7d85 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Maps.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Maps.pm @@ -9,11 +9,11 @@ CPANPLUS::Dist::Gentoo::Maps - Map CPAN objects to Gentoo and vice versa. =head1 VERSION -Version 0.08 +Version 0.10 =cut -our $VERSION = '0.08'; +our $VERSION = '0.10'; =head1 DESCRPITON @@ -79,6 +79,8 @@ Converts a CPAN version to a Gentoo version. sub version_c2g { my ($v) = @_; + return unless defined $v; + $v =~ y/-/_/; $v =~ y/0-9._//cd; @@ -93,42 +95,29 @@ sub version_c2g { return $v; } -=head2 C +=head2 C -Compares two Gentoo versions. +Converts a perl version as you can find it in prerequisites to a Gentoo version number. =cut -sub version_gcmp { - my ($a, $b) = map { defined() ? $_ : 0 } @_; - - for ($a, $b) { - s/^[._]+//g; - s/[._]+$//g; - if (/^([\d.]*\d)\.*(?:_p\.*(\d[\d.]*))?\.*(?:-r(\d+))?$/) { - $_ = { - v => [ split /\.+/, $1 ], - p => [ split /\.+/, $2 || 0 ], - r => [ $3 || 0 ], - }; - } else { - require Carp; - Carp::croak("Couldn't parse version string '$_'"); - } - } +sub perl_version_c2g { + my ($v) = @_; + + return unless defined $v and $v =~ /^[0-9\.]+$/; - for my $k (qw/v p r/) { - my $xa = $a->{$k}; - my $xb = $b->{$k}; - while (@$xa or @$xb) { - my $na = shift(@$xa) || 0; - my $nb = shift(@$xb) || 0; - my $c = $na <=> $nb; - return $c if $c; + my @parts; + if (my ($version, $subversion) = $v =~ /^([0-9]+)\.(0[^\.]+)$/) { + my $len = length $subversion; + if (my $pad = $len % 3) { + $subversion .= '0' x (3 - $pad); } + @parts = ($version, $subversion =~ /(.{1,3})/g); + } else { + @parts = split /\./, $v; } - return 0; + return join '.', map int, @parts; } =head1 SEE ALSO @@ -143,7 +132,8 @@ You can contact me by mail or on C (vincent). =head1 BUGS -Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. +Please report any bugs or feature requests to C, or through the web interface at L. +I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT @@ -153,7 +143,7 @@ You can find documentation for this module with the perldoc command. =head1 COPYRIGHT & LICENSE -Copyright 2009 Vincent Pit, all rights reserved. +Copyright 2009,2010 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. @@ -182,6 +172,7 @@ Crypt-RSA crypt-rsa Crypt-Random crypt-random DBIx-SearchBuilder dbix-searchbuilder Data-Buffer data-buffer +Date-Manip DateManip Digest digest-base Digest-BubbleBabble digest-bubblebabble Digest-MD2 digest-md2 @@ -233,6 +224,7 @@ Text-Wrapper text-wrapper Tie-EncryptedHash tie-encryptedhash Tk perl-tk Wx wxperl +XML-Sablotron XML-Sablot YAML yaml gettext Locale-gettext txt2html TextToHTML