r29448 - in /trunk/dh-make-perl: lib/Debian/Dependencies.pm t/Dependencies.t
dmn at users.alioth.debian.org
dmn at users.alioth.debian.org
Wed Jan 7 21:05:32 UTC 2009
Author: dmn
Date: Wed Jan 7 21:05:29 2009
New Revision: 29448
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=29448
Log:
Dependencies: overload '+' and '+='
Modified:
trunk/dh-make-perl/lib/Debian/Dependencies.pm
trunk/dh-make-perl/t/Dependencies.t
Modified: trunk/dh-make-perl/lib/Debian/Dependencies.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/dh-make-perl/lib/Debian/Dependencies.pm?rev=29448&op=diff
==============================================================================
--- trunk/dh-make-perl/lib/Debian/Dependencies.pm (original)
+++ trunk/dh-make-perl/lib/Debian/Dependencies.pm Wed Jan 7 21:05:29 2009
@@ -6,7 +6,8 @@
use AptPkg::Config;
use Debian::Dependency;
-use overload '""' => \&_stringify;
+use overload '""' => \&_stringify,
+ '+' => \&_add;
=head1 NAME
@@ -18,6 +19,20 @@
print $dl->[1]->ver; # 3.4
print $dl->[1]; # libfoo-perl (>= 3.4)
print $dl; # perl, libfoo-perl (>= 3.4)
+
+ $dl += 'libbar-perl';
+ print $dl; # perl, libfoo-perl (>= 3.4), libbar-perl
+
+ print Debian::Dependencies->new('perl') + 'libfoo-bar-perl';
+ # simple 'sum'
+
+ print Debian::Dependencies->new('perl')
+ + Debian::Dependencies->new('libfoo, libbar');
+ # add (concatenate) two lists
+
+ print Debian::Dependencies->new('perl')
+ + Debian::Dependency->new('foo');
+ # add depeendency to a list
=head1 DESCRIPTION
@@ -62,6 +77,23 @@
my $self = shift;
return join( ', ', @$self );
+}
+
+sub _add {
+ my $left = shift;
+ my $right = shift;
+ my $mode = shift;
+
+ $right = $left->new($right) unless ref($right);
+ $right = [ $right ] if $right->isa('Debian::Dependency');
+
+ if ( defined $mode ) { # $a + $b
+ return bless [ @$left, @$right ], ref($left);
+ }
+ else { # $a += $b;
+ push @$left, @$right;
+ $left;
+ }
}
=back
Modified: trunk/dh-make-perl/t/Dependencies.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/dh-make-perl/t/Dependencies.t?rev=29448&op=diff
==============================================================================
--- trunk/dh-make-perl/t/Dependencies.t (original)
+++ trunk/dh-make-perl/t/Dependencies.t Wed Jan 7 21:05:29 2009
@@ -27,3 +27,24 @@
),
'Dependencies list parsed' );
is( "$list", $dep_string, 'Dependencies stringifies' );
+
+my $sum = $list + 'libsome-perl (>= 4.4)';
+cmp_deeply(
+ $sum->[3],
+ bless(
+ {
+ pkg=>'libsome-perl',
+ rel=>'>=',
+ ver=>'4.4',
+ },
+ 'Debian::Dependency',
+ ),
+ 'Adding to a Dependencies',
+);
+
+$list += 'libother-perl';
+cmp_deeply(
+ $list->[3],
+ bless( { pkg => 'libother-perl' }, 'Debian::Dependency' ),
+ '+= works',
+);
More information about the Pkg-perl-cvs-commits
mailing list