Show
Ignore:
Timestamp:
04/25/08 12:43:07 (5 years ago)
Author:
tokuhirom
Message:

黒魔術レス

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTPx-Dispatcher/trunk/lib/HTTPx/Dispatcher.pm

    r10417 r10418  
    88use Scalar::Util qw/blessed/; 
    99use Carp; 
     10use base qw/Exporter/; 
    1011 
    11 sub import { 
    12     my $pkg = caller(0); 
    13     no strict 'refs'; 
    14     unshift @{"$pkg\::ISA"}, 'Class::Data::Inheritable'; 
    15     $pkg->mk_classdata( '__rules' => [] ); 
     12our @EXPORT = qw/connect match uri_for/; 
    1613 
    17     foreach my $export qw(connect match uri_for) { 
    18         *{"$pkg\::$export"} = \&{$export}; 
    19     } 
    20 } 
     14my $rules; 
    2115 
    2216sub connect 
     
    2418    my $pkg = caller(0); 
    2519    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); 
    2922} 
    3023 
     
    3427    croak "request required" unless blessed $req; 
    3528 
    36     for my $rule (@{ $class->__rules }) { 
     29    for my $rule (@{ $rules->{$class} }) { 
    3730        if (my $result = $rule->match($req)) { 
    3831            return $result; 
     
    4639    my ($class, @args) = @_; 
    4740 
    48     for my $rule ( @{ $class->__rules } ) { 
     41    for my $rule ( @{ $rules->{$class} } ) { 
    4942        if (my $result = $rule->uri_for( @args ) ) { 
    5043            return $result;