Updated uri_for to accept undef actions
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index aca4920..5f47a65 100644 (file)
@@ -18,19 +18,6 @@ use URI;
 use Scalar::Util qw/weaken/;
 use attributes;
 
-# For PAR
-require Catalyst::Helper;
-require Catalyst::PAR;
-require Catalyst::Build;
-require Catalyst::Test;
-
-require Catalyst::Engine::HTTP;
-require Catalyst::Engine::CGI;
-
-require Catalyst::Controller;
-require Catalyst::Model;
-require Catalyst::View;
-
 __PACKAGE__->mk_accessors(
     qw/counter request response state action stack namespace/
 );
@@ -56,7 +43,7 @@ our $DETACH    = "catalyst_detach\n";
 require Module::Pluggable::Fast;
 
 # Helper script generation
-our $CATALYST_SCRIPT_GEN = 18;
+our $CATALYST_SCRIPT_GEN = 19;
 
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log dispatcher_class
@@ -687,8 +674,11 @@ sub uri_for {
 
     # join args with '/', or a blank string
     my $args = ( scalar @args ? '/' . join( '/', @args ) : '' );
-    return URI->new_abs( URI->new_abs( "$path$args", "$basepath$namespace" ),
-        $base )->canonical;
+    $args =~ s/^\/// unless $path;
+    my $res =
+      URI->new_abs( URI->new_abs( "$path$args", "$basepath$namespace" ), $base )
+      ->canonical;
+    $res;
 }
 
 =head2 $c->welcome_message