X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FDispatcher.pm;h=3c6404ac6ada133f95dd0a055f9fc6198e459902;hp=7e534e0abd6da37ee11c9aaf109d99b945b54ba3;hb=71c3bcc37c15d47d5070525780876daf38309d9a;hpb=ef3250bcc579b6ace8ec3bc0b4d93b9660162994 diff --git a/lib/Catalyst/Dispatcher.pm b/lib/Catalyst/Dispatcher.pm index 7e534e0..3c6404a 100644 --- a/lib/Catalyst/Dispatcher.pm +++ b/lib/Catalyst/Dispatcher.pm @@ -128,7 +128,10 @@ sub forward { return 0; } - my $caller = caller(0); + # Relative forwards from detach + my $caller = ( caller(0) )[0]->isa('Catalyst::Dispatcher') + && ( ( caller(1) )[3] =~ /::detach$/ ) ? caller(1) : caller(0); + my $namespace = '/'; my $arguments = ( ref( $_[-1] ) eq 'ARRAY' ) ? pop(@_) : $c->req->args; @@ -320,15 +323,15 @@ sub set_action { if ( $flags{path} ) { $flags{path} =~ s/^\w+//; $flags{path} =~ s/\w+$//; - if ( $flags{path} =~ /^'(.*)'$/ ) { $flags{path} = $1 } - if ( $flags{path} =~ /^"(.*)"$/ ) { $flags{path} = $1 } + if ( $flags{path} =~ /^\s*'(.*)'\s*$/ ) { $flags{path} = $1 } + if ( $flags{path} =~ /^\s*"(.*)"\s*$/ ) { $flags{path} = $1 } } if ( $flags{regex} ) { $flags{regex} =~ s/^\w+//; $flags{regex} =~ s/\w+$//; - if ( $flags{regex} =~ /^'(.*)'$/ ) { $flags{regex} = $1 } - if ( $flags{regex} =~ /^"(.*)"$/ ) { $flags{regex} = $1 } + if ( $flags{regex} =~ /^\s*'(.*)'\s*$/ ) { $flags{regex} = $1 } + if ( $flags{regex} =~ /^\s*"(.*)"\s*$/ ) { $flags{regex} = $1 } } my $reverse = $prefix ? "$prefix/$method" : $method;