prepared for 5.7001
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index d7b53ae..90d3610 100644 (file)
@@ -12,13 +12,13 @@ use Catalyst::Utils;
 use Catalyst::Controller;
 use Devel::InnerPackage ();
 use File::stat;
-use Module::Pluggable::Object;
+use Module::Pluggable::Object ();
 use NEXT;
-use Text::SimpleTable;
-use Path::Class::Dir;
-use Path::Class::File;
+use Text::SimpleTable ();
+use Path::Class::Dir ();
+use Path::Class::File ();
 use Time::HiRes qw/gettimeofday tv_interval/;
-use URI;
+use URI ();
 use Scalar::Util qw/weaken blessed/;
 use Tree::Simple qw/use_weak_refs/;
 use Tree::Simple::Visitor::FindByUID;
@@ -61,7 +61,7 @@ __PACKAGE__->response_class('Catalyst::Response');
 
 # Remember to update this in Catalyst::Runtime as well!
 
-our $VERSION = '5.70_03';
+our $VERSION = '5.7001';
 
 sub import {
     my ( $class, @arguments ) = @_;
@@ -860,8 +860,8 @@ EOF
 
 =head2 $c->uri_for( $path, @args?, \%query_values? )
 
-Merges path with C<$c-E<gt>request-E<gt>base> for absolute URIs and with
-C<$c-E<gt>namespace> for relative URIs, then returns a normalized L<URI>
+Merges path with C<< $c->request->base >> for absolute URIs and with
+C<< $c->namespace >> for relative URIs, then returns a normalized L<URI>
 object. If any args are passed, they are added at the end of the path.
 If the last argument to C<uri_for> is a hash reference, it is assumed to
 contain GET parameter key/value pairs, which will be appended to the URI
@@ -869,7 +869,7 @@ in standard fashion.
 
 Instead of C<$path>, you can also optionally pass a C<$action> object
 which will be resolved to a path using
-C<$c-E<gt>dispatcher-E<gt>uri_for_action>; if the first element of
+C<< $c->dispatcher->uri_for_action >>; if the first element of
 C<@args> is an arrayref it is treated as a list of captures to be passed
 to C<uri_for_action>.
 
@@ -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
@@ -1129,7 +1128,7 @@ sub execute {
 
     if ( $c->depth >= $RECURSION ) {
         my $action = "$code";
-        $action = "/$action" unless $action =~ /\-\>/;
+        $action = "/$action" unless $action =~ /->/;
         my $error = qq/Deep recursion detected calling "$action"/;
         $c->log->error($error);
         $c->error($error);
@@ -1151,6 +1150,7 @@ sub execute {
         if ( $error eq $DETACH ) { die $DETACH if $c->depth > 1 }
         else {
             unless ( ref $error ) {
+                no warnings 'uninitialized';
                 chomp $error;
                 my $class = $last->class;
                 my $name  = $last->name;
@@ -1794,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 = (