Substituting a vertical bar for slashes in sub names makes debug output much easier...
[catagits/CatalystX-Routes.git] / lib / CatalystX / Routes.pm
index 63f0d82..e7059a4 100644 (file)
@@ -48,10 +48,15 @@ sub _add_route {
         $attrs->{Chained} = q{/};
     }
 
+    my $name = $_[0];
+    $name =~ s{^/}{};
+
     # We need to turn the full chain name into a path, since two end points
     # from two different chains could have the same end point name.
-    my $name = ( $attrs->{Chained} eq '/' ? q{} : $attrs->{Chained} ) . q{/}
-        . $_[0];
+    $name = ( $attrs->{Chained} eq '/' ? q{} : $attrs->{Chained} ) . q{/}
+        . $name;
+
+    $name =~ s{/}{|}g;
 
     my $meth_base = '__route__' . $name;
 
@@ -75,6 +80,7 @@ sub _add_chain_point {
     my ( $attrs, $sub ) = _process_args( $meta, @_ );
 
     my $name = $_[0];
+    $name =~ s{/}{|}g;
 
     $meta->add_chain_point( $name => [ $attrs, $sub ] );
 }
@@ -216,7 +222,7 @@ __END__
      => sub { ... };
 
   # GET /user/foo
-  get 'foo' => sub { ... }
+  get 'foo' => sub { ... };
 
   sub _post { ... }
 
@@ -321,6 +327,9 @@ is essentially ignored (but still required).
 Note that it is legitimate to pass the empty string as the name for a chain's
 end point.
 
+If the end point's name does not start with a slash, it will be prefixed with
+the controller's namespace.
+
 If you don't specify a C<chained> value for an end point, then it will use the
 root URI, C</>, as the root of the chain.