X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FUtils.pm;h=325e72336d3ae75c48cfbd3453b76f87a4300585;hb=abdcb6e43cc07a0947ea520c037a8f7f9d1cf0af;hp=440daa3251d1e9003064bd638a2d9d19e9277643;hpb=514529164fa2914a205040e32f8e54860ca4e582;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Utils.pm b/lib/Catalyst/Utils.pm index 440daa3..325e723 100644 --- a/lib/Catalyst/Utils.pm +++ b/lib/Catalyst/Utils.pm @@ -2,7 +2,9 @@ package Catalyst::Utils; use strict; use attributes (); +use HTTP::Request; use Path::Class; +use URI; =head1 NAME @@ -150,6 +152,32 @@ sub reflect_actions { return $actions; } +=item request($string); + +Returns an C from a string. + +=cut + +sub request { + my $request = shift; + + unless ( ref $request ) { + + if ( $request =~ m/http/i ) { + $request = URI->new($request)->canonical; + } + else { + $request = URI->new( 'http://localhost' . $request )->canonical; + } + } + + unless ( ref $request eq 'HTTP::Request' ) { + $request = HTTP::Request->new( 'GET', $request ); + } + + return $request; +} + =back =head1 AUTHOR