X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FResponse.pm;h=4d0e85a032c15260dbf5f2f177ffd02f94545dc5;hb=9d8d0ab94e468c7399f6efdff4735d8b3a54307a;hp=8c26ae446691b1898b3dc1f218b3d1f4684bdf6d;hpb=46fff667a1229a59422010500311e48a6f9da824;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Response.pm b/lib/Catalyst/Response.pm index 8c26ae4..4d0e85a 100644 --- a/lib/Catalyst/Response.pm +++ b/lib/Catalyst/Response.pm @@ -82,6 +82,15 @@ has _context => ( clearer => '_clear_context', ); +before [qw(status headers content_encoding content_length content_type header)] => sub { + my $self = shift; + + $self->_context->log->warn( + "Useless setting a header value after finalize_headers called." . + " Not what you want." ) + if ( $self->finalized_headers && @_ ); +}; + sub output { shift->body(@_) } sub code { shift->status(@_) } @@ -111,23 +120,15 @@ sub from_psgi_response { my ($status, $headers, $body) = @$psgi_res; $self->status($status); $self->headers(HTTP::Headers->new(@$headers)); - if(ref $body eq 'ARRAY') { - $self->body(join '', grep defined, @$body); - } else { - $self->body($body); - } + $self->body($body); } elsif(ref $psgi_res eq 'CODE') { $psgi_res->(sub { my $response = shift; my ($status, $headers, $maybe_body) = @$response; $self->status($status); $self->headers(HTTP::Headers->new(@$headers)); - if($maybe_body) { - if(ref $maybe_body eq 'ARRAY') { - $self->body(join '', grep defined, @$maybe_body); - } else { - $self->body($maybe_body); - } + if(defined $maybe_body) { + $self->body($maybe_body); } else { return $self->write_fh; }