SVN: toys/rsget.pl/RSGet: Dispatch.pm Processor.pm

sparky sparky at pld-linux.org
Wed Sep 16 19:07:52 CEST 2009


Author: sparky
Date: Wed Sep 16 19:07:52 2009
New Revision: 10612

Modified:
   toys/rsget.pl/RSGet/Dispatch.pm
   toys/rsget.pl/RSGet/Processor.pm
Log:
- allow multiple uri:


Modified: toys/rsget.pl/RSGet/Dispatch.pm
==============================================================================
--- toys/rsget.pl/RSGet/Dispatch.pm	(original)
+++ toys/rsget.pl/RSGet/Dispatch.pm	Wed Sep 16 19:07:52 2009
@@ -238,9 +238,13 @@
 sub getter
 {
 	my $uri = shift;
-	my @g = grep { $uri =~ m/^http:\/\/(:?www\.)?$_->{uri}/ } values %getters;
-	return undef unless @g;
-	return $g[0];
+	foreach my $getter ( values %getters ) {
+		foreach my $re ( @{ $getter->{uri} } ) {
+			return $getter
+				if $uri =~ m{^http://(?:www\.)?$re};
+		}
+	}
+	return undef;
 }
 
 

Modified: toys/rsget.pl/RSGet/Processor.pm
==============================================================================
--- toys/rsget.pl/RSGet/Processor.pm	(original)
+++ toys/rsget.pl/RSGet/Processor.pm	Wed Sep 16 19:07:52 2009
@@ -4,7 +4,7 @@
 use warnings;
 use RSGet::Tools;
 
-my $options = "name|short|uri|slots|cookie|status";
+my $options = "name|short|slots|cookie|status";
 my $parts = "pre|start|perl";
 
 my $processed = "";
@@ -56,7 +56,9 @@
 
 	open F_IN, '<', $file;
 
-	my %opts;
+	my %opts = (
+		uri => [],
+	);
 	my %parts = (
 		pre => [],
 		start => [],
@@ -85,6 +87,8 @@
 
 		if ( /^($parts)\s*:/ ) {
 			$part = $1;
+		} elsif ( /^uri\s*:\s+(.*)$/ ) {
+			push @{$opts{uri}}, $1;
 		} elsif ( /^($options)\s*:\s+(.*)$/ ) {
 			$opts{$1} = $2;
 		}
@@ -95,7 +99,11 @@
 		p "Can't find 'start:'\n";
 		return undef;
 	}
-	foreach ( qw(name short uri) ) {
+	unless ( @{$opts{uri}} ) {
+		p "Can't find 'uri:'\n";
+		return undef;
+	}
+	foreach ( qw(name short) ) {
 		next if $opts{$_};
 		p "Can't find '$_:'\n";
 		return undef;
@@ -115,7 +123,7 @@
 	$space = "";
 	$is_sub = 0;
 
-	$opts{uri} = eval $opts{uri};
+	$opts{uri} = [ map { eval $_ } @{$opts{uri}} ];
 	$opts{class} = ${class};
 	$opts{pkg} = "${class}::$opts{name}";
 


More information about the pld-cvs-commit mailing list