X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git;a=blobdiff_plain;f=lib%2FCPANPLUS%2FDist%2FGentoo%2FAtom.pm;h=002b349be48a31dc5ff532f80760a49bf5456df6;hp=8ee0f889d8789e2c4058fc9e37ee6aa5903b8c98;hb=e8b4c54d60a1bab156b8bc270df2d95327ddd4e1;hpb=1501f44a9ccfe05c7525b70b7f1470bbb26453fd diff --git a/lib/CPANPLUS/Dist/Gentoo/Atom.pm b/lib/CPANPLUS/Dist/Gentoo/Atom.pm index 8ee0f88..002b349 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Atom.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Atom.pm @@ -10,6 +10,7 @@ use Scalar::Util (); use overload ( '<=>' => \&_spaceship, + 'cmp' => \&_cmp, '""' => \&_stringify, ); @@ -96,6 +97,25 @@ sub _spaceship { return $v1 <=> $v2; } +sub _cmp { + my ($a1, $a2, $r) = @_; + + my $s1 = $a1->qualified_name; + my $v1 = $a1->version; + $s1 .= "-$v1" if defined $v1; + + my $s2; + if (Scalar::Util::blessed($a2) and $a2->isa(__PACKAGE__)) { + $s2 = $a2->qualified_name; + my $v2 = $a2->version; + $s2 .= "-$v2" if defined $v2; + } else { + $s2 = $a2; + } + + $s1 cmp $s2; +} + sub _stringify { my ($a) = @_;