add warning in uri_for for undefined args
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Utils.pm
index 456497f..6c2ecb5 100644 (file)
@@ -7,6 +7,7 @@ use HTTP::Request;
 use Path::Class;
 use URI;
 use Class::Inspector;
+use Carp qw/croak/;
 
 =head1 NAME
 
@@ -220,10 +221,10 @@ sub request {
     my $request = shift;
     unless ( ref $request ) {
         if ( $request =~ m/^http/i ) {
-            $request = URI->new($request)->canonical;
+            $request = URI->new($request);
         }
         else {
-            $request = URI->new( 'http://localhost' . $request )->canonical;
+            $request = URI->new( 'http://localhost' . $request );
         }
     }
     unless ( ref $request eq 'HTTP::Request' ) {
@@ -242,6 +243,9 @@ sub ensure_class_loaded {
     my $class = shift;
     my $opts  = shift;
 
+    croak "Malformed class Name $class"
+        if $class =~ m/(?:\b\:\b|\:{3,})/;
+
     return if !$opts->{ ignore_loaded }
         && Class::Inspector->loaded( $class ); # if a symbol entry exists we don't load again