Reformatted documentation
[catagits/Catalyst-Runtime.git] / lib / Catalyst / DispatchType / Path.pm
index 31f37b3..1672712 100644 (file)
@@ -16,9 +16,7 @@ See L<Catalyst>.
 
 =head1 METHODS
 
-=over 4
-
-=item $self->list($c)
+=head2 $self->list($c)
 
 =cut
 
@@ -33,7 +31,7 @@ sub list {
       if ( keys %{ $self->{paths} } );
 }
 
-=item $self->match( $c, $path )
+=head2 $self->match( $c, $path )
 
 =cut
 
@@ -51,7 +49,7 @@ sub match {
     return 0;
 }
 
-=item $self->register( $c, $action )
+=head2 $self->register( $c, $action )
 
 =cut
 
@@ -62,7 +60,11 @@ sub register {
     my @register;
 
     foreach my $r ( @{ $attrs->{Path} || [] } ) {
-        unless ( $r =~ m!^/! ) {    # It's a relative path
+        unless ($r) {
+            $r = $action->namespace;
+            $r = '' if $r eq '/';
+        }
+        elsif ( $r !~ m!^/! ) {    # It's a relative path
             $r = $action->namespace . "/$r";
         }
         push( @register, $r );
@@ -78,13 +80,20 @@ sub register {
         # Register sub name as a relative path
     }
 
-    foreach my $r (@register) {
-        $r =~ s!^/!!;
-        $self->{paths}{$r} = $action;
-    }
+    $self->register_path( $c, $_, $action ) for @register;
+    return 1 if @register;
+    return 0;
 }
 
-=back
+=head2 $self->register_path($c, $path, $action)
+
+=cut
+
+sub register_path {
+    my ( $self, $c, $path, $action ) = @_;
+    $path =~ s!^/!!;
+    $self->{paths}{$path} = $action;
+}
 
 =head1 AUTHOR