r27862 - /trunk/dh-make-perl/dh-make-perl

dmn at users.alioth.debian.org dmn at users.alioth.debian.org
Sun Dec 7 17:15:51 UTC 2008


Author: dmn
Date: Sun Dec  7 17:15:49 2008
New Revision: 27862

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=27862
Log:
Dep: add parse() -- constructor parsing a single dependency

Modified:
    trunk/dh-make-perl/dh-make-perl

Modified: trunk/dh-make-perl/dh-make-perl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/dh-make-perl/dh-make-perl?rev=27862&op=diff
==============================================================================
--- trunk/dh-make-perl/dh-make-perl (original)
+++ trunk/dh-make-perl/dh-make-perl Sun Dec  7 17:15:49 2008
@@ -426,6 +426,42 @@
         ? $self->pkg . ' (' . $self->rel . ' ' . $self->ver . ')'
         : $self->pkg
     );
+}
+
+sub parse {
+    my ( $class, $str ) = @_;
+
+    if ( $str =~ m{
+            ^               # start from the beginning
+            ([^\(\s]+)      # package name - no paren, no space
+            \s*             # oprional space
+            (?:             # version is optional
+                \(          # opening paren
+                    (       # various relations 
+                        <<
+                      | <=
+                      | ==
+                      | >=
+                      | >>
+                    )
+                    \s*     # optional space
+                    (.+)    # version
+                \)          # closing paren
+            )?
+            $}x             # done
+    )
+    {
+        return $class->new( {
+            pkg => $1,
+            ( ( defined($2) and defined($3) )
+               ? ( rel => $2, ver => $3 )
+               : ()
+            )
+        } );
+    }
+    else {
+        die "Unable to parse '$str'";
+    }
 }
 
 sub parse_list {




More information about the Pkg-perl-cvs-commits mailing list