X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=c859fd27af793fcc6f03570d942f14bfdefe55f1;hb=f263fa9a3be935b736f5d901316565662387c41b;hp=48253b925a4f2b9db12714bf981ec19eb35f4ca2;hpb=025703186d05624d36984961c75a1e138eaed850;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 48253b9..c859fd2 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -10,6 +10,8 @@ use HTTP::Headers; use Moose; +use namespace::clean -except => 'meta'; + with 'MooseX::Emulate::Class::Accessor::Fast'; has action => (is => 'rw'); @@ -64,16 +66,9 @@ before body_parameters => sub { has uploads => ( is => 'rw', required => 1, - lazy => 1, default => sub { {} }, ); -# modifier was a noop (groditi) -# before uploads => sub { -# my ($self) = @_; -# #$self->_context->prepare_body; -# }; - has parameters => ( is => 'rw', required => 1, @@ -83,7 +78,6 @@ has parameters => ( before parameters => sub { my ($self, $params) = @_; - #$self->_context->prepare_body(); if ( $params && !ref $params ) { $self->_context->log->warn( "Attempt to retrieve '$params' with req->params(), " . @@ -103,14 +97,17 @@ has base => ( }, ); -has body => ( - is => 'rw' +has _body => ( + is => 'rw', clearer => '_clear_body', predicate => '_has_body', ); - -before body => sub { - my ($self) = @_; +# Eugh, ugly. Should just be able to rename accessor methods to 'body' +# and provide a custom reader.. +sub body { + my $self = shift; $self->_context->prepare_body(); -}; + $self->_body(@_) if scalar @_; + return blessed $self->_body ? $self->_body->body : $self->_body; +} has hostname => ( is => 'rw', @@ -124,8 +121,6 @@ has hostname => ( has _path => ( is => 'rw', predicate => '_has_path', clearer => '_clear_path' ); -no Moose; - sub args { shift->arguments(@_) } sub body_params { shift->body_parameters(@_) } sub input { shift->body(@_) } @@ -215,6 +210,9 @@ For example, if your action was and the URI for the request was C, the string C would be the first and only argument. +Arguments just get passed through and B get unescaped automatically, so +you should do that explicitly. + =head2 $req->args Shortcut for arguments. @@ -404,7 +402,7 @@ Returns the path, i.e. the part of the URI after $req->base, for the current req =head2 $req->path_info -Alias for path, added for compability with L. +Alias for path, added for compatibility with L. =cut @@ -468,7 +466,7 @@ actions or regex captures. =head2 $req->snippets -C used to be called snippets. This is still available for backwoards +C used to be called snippets. This is still available for backwards compatibility, but is considered deprecated. =head2 $req->upload