Changeset 10418 for lang/perl/HTTPx-Dispatcher/trunk
- Timestamp:
- 04/25/08 12:43:07 (5 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/HTTPx-Dispatcher/trunk/lib/HTTPx/Dispatcher.pm
r10417 r10418 8 8 use Scalar::Util qw/blessed/; 9 9 use Carp; 10 use base qw/Exporter/; 10 11 11 sub import { 12 my $pkg = caller(0); 13 no strict 'refs'; 14 unshift @{"$pkg\::ISA"}, 'Class::Data::Inheritable'; 15 $pkg->mk_classdata( '__rules' => [] ); 12 our @EXPORT = qw/connect match uri_for/; 16 13 17 foreach my $export qw(connect match uri_for) { 18 *{"$pkg\::$export"} = \&{$export}; 19 } 20 } 14 my $rules; 21 15 22 16 sub connect … … 24 18 my $pkg = caller(0); 25 19 my @args = @_; 26 my $rules = $pkg->__rules; 27 push @$rules, HTTPx::Dispatcher::Rule->new(@args); 28 $pkg->__rules( $rules ); 20 21 push @{ $rules->{$pkg} } , HTTPx::Dispatcher::Rule->new(@args); 29 22 } 30 23 … … 34 27 croak "request required" unless blessed $req; 35 28 36 for my $rule (@{ $ class->__rules}) {29 for my $rule (@{ $rules->{$class} }) { 37 30 if (my $result = $rule->match($req)) { 38 31 return $result; … … 46 39 my ($class, @args) = @_; 47 40 48 for my $rule ( @{ $ class->__rules} ) {41 for my $rule ( @{ $rules->{$class} } ) { 49 42 if (my $result = $rule->uri_for( @args ) ) { 50 43 return $result;
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)