X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=b655be30654d838644e6c6d79bc49e39ff0e9407;hp=1026625dce78c22b8ae16306c45afe88f655ecd6;hb=28928de92c8bfea34d7e995bc92f1bf5632242d6;hpb=5789a3d8e83afb0a0232d4f2a2617353497cd976 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 1026625..b655be3 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -1198,6 +1198,23 @@ sub execute { return $c->state; } +=head2 $c->_localize_fields( sub { }, \%keys ); + +=cut + +sub _localize_fields { + my ( $c, $localized, $code ) = ( @_ ); + + my $request = delete $localized->{request} || {}; + my $response = delete $localized->{response} || {}; + + local @{ $c }{ keys %$localized } = values %$localized; + local @{ $c->request }{ keys %$request } = values %$request; + local @{ $c->response }{ keys %$response } = values %$response; + + $code->(); +} + =head2 $c->finalize Finalizes the request.