X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;fp=lib%2FCatalyst%2FRequest.pm;h=3d0c03ae3c4919be0c53dca7b96f7633e0b0681e;hp=9c43407ce70435ff4a950328349481d966475f27;hb=d003ff83ac25ab0af3988de66867f73af54ff631;hpb=d8ccdd9d64915be00c29a7ab21d9275431235697 diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 9c43407..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; }