Initial support for :Args attribute
[catagits/Catalyst-Runtime.git] / lib / Catalyst / DispatchType / Regex.pm
index 411cd4c..49f7636 100644 (file)
@@ -16,9 +16,7 @@ See L<Catalyst>.
 
 =head1 METHODS
 
-=over 4
-
-=item $self->list($c)
+=head2 $self->list($c)
 
 =cut
 
@@ -26,15 +24,14 @@ sub list {
     my ( $self, $c ) = @_;
     my $re = Text::SimpleTable->new( [ 36, 'Regex' ], [ 37, 'Private' ] );
     for my $regex ( @{ $self->{compiled} } ) {
-        my $compiled = $regex->{re};
-        my $action   = $regex->{action};
-        $re->row( $compiled, "/$action" );
+        my $action = $regex->{action};
+        $re->row( $regex->{path}, "/$action" );
     }
     $c->log->debug( "Loaded Regex actions:\n" . $re->draw )
       if ( @{ $self->{compiled} } );
 }
 
-=item $self->match( $c, $path )
+=head2 $self->match( $c, $path )
 
 =cut
 
@@ -47,6 +44,7 @@ sub match {
 
     foreach my $compiled ( @{ $self->{compiled} || [] } ) {
         if ( my @snippets = ( $path =~ $compiled->{re} ) ) {
+            next unless $compiled->{action}->match($c);
             $c->req->action( $compiled->{path} );
             $c->req->match($path);
             $c->req->snippets( \@snippets );
@@ -59,7 +57,7 @@ sub match {
     return 0;
 }
 
-=item $self->register( $c, $action )
+=head2 $self->register( $c, $action )
 
 =cut
 
@@ -78,9 +76,11 @@ sub register {
         $self->register_path( $c, $r, $action );
         $self->register_regex( $c, $r, $action );
     }
+    return 1 if @register;
+    return 0;
 }
 
-=item $self->register_regex($c, $re, $action)
+=head2 $self->register_regex($c, $re, $action)
 
 =cut
 
@@ -96,8 +96,6 @@ sub register_regex {
     );
 }
 
-=back
-
 =head1 AUTHOR
 
 Matt S Trout