X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FUtils.pm;h=e4c5db800c3d65320edfdf36d0923d2359f95589;hp=440daa3251d1e9003064bd638a2d9d19e9277643;hb=d837e1a7eadff19ff04373ad19d22fa293e19db5;hpb=99d891a5a0d1e06d6d63aa61473c63752e71a4fd diff --git a/lib/Catalyst/Utils.pm b/lib/Catalyst/Utils.pm index 440daa3..e4c5db8 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 @@ -152,6 +154,34 @@ sub reflect_actions { =back +=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 Sebastian Riedel, C