deprecate Catalyst::Base (left for compability reasons)
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 2a85d29..8028afa 100644 (file)
@@ -61,7 +61,7 @@ __PACKAGE__->response_class('Catalyst::Response');
 
 # Remember to update this in Catalyst::Runtime as well!
 
-our $VERSION = '5.7003';
+our $VERSION = '5.7006';
 
 sub import {
     my ( $class, @arguments ) = @_;
@@ -817,6 +817,7 @@ You are running an old script!
 
   or (this will not overwrite existing files):
     catalyst.pl -scripts $class
+
 EOF
     }
     
@@ -826,7 +827,7 @@ EOF
         if (@plugins) {
             my $t = Text::SimpleTable->new(74);
             $t->row($_) for @plugins;
-            $class->log->debug( "Loaded plugins:\n" . $t->draw );
+            $class->log->debug( "Loaded plugins:\n" . $t->draw . "\n" );
         }
 
         my $dispatcher = $class->dispatcher;
@@ -861,7 +862,7 @@ EOF
             my $type = ref $class->components->{$comp} ? 'instance' : 'class';
             $t->row( $comp, $type );
         }
-        $class->log->debug( "Loaded components:\n" . $t->draw )
+        $class->log->debug( "Loaded components:\n" . $t->draw . "\n" )
           if ( keys %{ $class->components } );
     }
 
@@ -919,11 +920,13 @@ sub uri_for {
     $path ||= '';
     $namespace = '' if $path =~ /^\//;
     $path =~ s/^\///;
+    $path =~ s/\?/%3F/g;
 
     my $params =
       ( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
 
     for my $value ( values %$params ) {
+        next unless defined $value;
         for ( ref $value eq 'ARRAY' ? @$value : $value ) {
             $_ = "$_";
             utf8::encode( $_ );
@@ -931,7 +934,7 @@ sub uri_for {
     };
     
     # join args with '/', or a blank string
-    my $args = ( scalar @args ? '/' . join( '/', @args ) : '' );
+    my $args = ( scalar @args ? '/' . join( '/', map {s/\?/%3F/g; $_} @args ) : '' );
     $args =~ s/^\/// unless $path;
     my $res =
       URI->new_abs( URI->new_abs( "$path$args", "$basepath$namespace" ), $base )
@@ -1327,7 +1330,7 @@ sub finalize {
         );
 
         $c->log->info(
-            "Request took ${elapsed}s ($av/s)\n" . $t->draw );        
+            "Request took ${elapsed}s ($av/s)\n" . $t->draw . "\n" );        
     }
 
     return $c->response->status;