From: Sebastian Riedel Date: Thu, 21 Jul 2005 17:19:19 +0000 (+0000) Subject: Fixed detach and whitespaces in Path/Regex X-Git-Tag: 5.7099_04~1253 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=71c3bcc37c15d47d5070525780876daf38309d9a;hp=ef3250bcc579b6ace8ec3bc0b4d93b9660162994 Fixed detach and whitespaces in Path/Regex --- diff --git a/Changes b/Changes index 8d6c8b7..b6c0d39 100644 --- a/Changes +++ b/Changes @@ -6,6 +6,8 @@ This file documents the revision history for Perl extension Catalyst. - fixed $Data::Dumper::Terse (Robin Berjon) - added arguments for detach - new credits section in pod + - fixed detach to allow relative action names (Matt and Robert) + - added the ability to have whitespaces in Path( '' ) and Regex( '' ) 5.30 2005-06-04 12:35:00 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 3bf7e4d..c6980a1 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -280,6 +280,8 @@ Marcus Ramberg Matt S Trout +Robert Sedlacek + Sebastian Riedel Tatsuhiko Miyagawa 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;