X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=b6196354fb4129f372f25f3f46ca9a9c0fabc5b3;hb=88879e92d58519c320438f8440a68d1648f4c099;hp=9aec8c27daa0e8bb8f21619a4ff10cb5f95b969f;hpb=147869cdcab4d1cb9638bd8adb9037c7fdd52939;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 9aec8c2..b619635 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -61,7 +61,7 @@ __PACKAGE__->response_class('Catalyst::Response'); # Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.7000'; +our $VERSION = '5.7001'; sub import { my ( $class, @arguments ) = @_; @@ -902,11 +902,10 @@ sub uri_for { ( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} ); for my $value ( values %$params ) { - my $isa_ref = ref $value; - if( $isa_ref and $isa_ref ne 'ARRAY' ) { - croak( "Non-array reference ($isa_ref) passed to uri_for()" ); + for ( ref $value eq 'ARRAY' ? @$value : $value ) { + $_ = "$_"; + utf8::encode( $_ ); } - utf8::encode( $_ ) for grep { defined } $isa_ref ? @$value : $value; }; # join args with '/', or a blank string @@ -1148,7 +1147,7 @@ sub execute { my $last = pop( @{ $c->stack } ); if ( my $error = $@ ) { - if ( $error eq $DETACH ) { die $DETACH if $c->depth > 1 } + if ( !ref($error) and $error eq $DETACH ) { die $DETACH if $c->depth > 1 } else { unless ( ref $error ) { no warnings 'uninitialized'; @@ -1795,7 +1794,7 @@ sub setup_components { ); for my $component ( sort { length $a <=> length $b } $locator->plugins ) { - Catalyst::Utils::ensure_class_loaded( $component ); + Catalyst::Utils::ensure_class_loaded( $component, { ignore_loaded => 1 } ); my $module = $class->setup_component( $component ); my %modules = (