X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=3d0c03ae3c4919be0c53dca7b96f7633e0b0681e;hb=e01b60938f8c09eb9f02f267ae5d694e327d9832;hp=4e000cd35478b4c0e7e9a7fe7fada67509c3c053;hpb=8738b8fecb20f3761d76a8d7f46660fdae54993a;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 4e000cd..3d0c03a 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -127,7 +127,7 @@ has body_parameters => ( is => 'rw', required => 1, lazy => 1, - default => sub { {} }, + builder => 'prepare_body_parameters', ); has uploads => ( @@ -152,8 +152,6 @@ has parameters => ( sub prepare_parameters { my ( $self ) = @_; - - $self->prepare_body; my $parameters = {}; my $body_parameters = $self->body_parameters; my $query_parameters = $self->query_parameters; @@ -175,12 +173,6 @@ sub prepare_parameters { $parameters; } -before body_parameters => sub { - my ($self) = @_; - $self->prepare_body; - $self->prepare_body_parameters; -}; - has _uploadtmp => ( is => 'ro', predicate => '_has_uploadtmp', @@ -225,9 +217,10 @@ sub prepare_body_chunk { sub prepare_body_parameters { my ( $self ) = @_; + $self->prepare_body if ! $self->_has_body; return unless $self->_body; - $self->{body_parameters} = $self->_body->param; # FIXME!! Recursion here. + return $self->_body->param; } sub prepare_connection { @@ -277,7 +270,7 @@ has _body => ( # and provide a custom reader.. sub body { my $self = shift; - $self->prepare_body(); + $self->prepare_body unless ! $self->_has_body; croak 'body is a reader' if scalar @_; return blessed $self->_body ? $self->_body->body : $self->_body; } @@ -869,7 +862,7 @@ Parse cookies from header. Sets up a L object. =head2 $self->prepare_connection() Sets up various fields in the request like the local and remote addresses, -request method, vhost requested etc. +request method, hostname requested etc. =head2 $self->prepare_parameters()