X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=e6f0a007fe19fa12efdbde04445952cced98a447;hp=099b13713dcd02dfcf155bad019b9291f314bb0c;hb=4090e3bb3fea1a73ac369250e31584d61428b808;hpb=5fb12dbb7e69039e0ea22ec4d7cb627206b4508b diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 099b137..e6f0a00 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -6,6 +6,7 @@ use utf8; use URI::http; use URI::https; use URI::QueryParam; +use HTTP::Headers; use Moose; @@ -26,11 +27,21 @@ has headers => ( is => 'rw', isa => 'HTTP::Headers', handles => [qw(content_encoding content_length content_type header referer user_agent)], + default => sub { HTTP::Headers->new() }, + required => 1, + lazy => 1, ); +#Moose ToDo: +#can we lose the before modifiers which just call prepare_body ? +#they are wasteful, slow us down and feel cluttery. +# Can we call prepare_body at BUILD time? +# Can we make _body an attribute and have the rest of these lazy build from there? + has _context => ( is => 'rw', weak_ref => 1, + handles => ['read'], ); has body_parameters => ( @@ -52,10 +63,11 @@ has uploads => ( default => sub { {} }, ); -before uploads => sub { - my ($self) = @_; - $self->_context->prepare_body; -}; +# modifier was a noop (groditi) +# before uploads => sub { +# my ($self) = @_; +# #$self->_context->prepare_body; +# }; has parameters => ( is => 'rw', @@ -66,7 +78,7 @@ has parameters => ( before parameters => sub { my ($self, $params) = @_; - $self->_context->prepare_body(); + #$self->_context->prepare_body(); if ( $params && !ref $params ) { $self->_context->log->warn( "Attempt to retrieve '$params' with req->params(), " . @@ -432,10 +444,6 @@ defaults to the size of the request if not specified. You have to set MyApp->config->{parse_on_demand} to use this directly. -=cut - -sub read { shift->_context->read(@_); } - =head2 $req->referer Shortcut for $req->headers->referer. Returns the referring page.