X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FResponse.pm;h=b57f84ca17ab0cb3fad495cd614319985daa5f19;hb=a3c9ab76469287b1bd4dfdb5e48419d69ef997bc;hp=f5ec77c5e13fc49aa15a1c2f3c96643e24626190;hpb=e67f0874848760b322fafdf8b599009b7defd5a0;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Response.pm b/lib/Catalyst/Response.pm index f5ec77c..b57f84c 100644 --- a/lib/Catalyst/Response.pm +++ b/lib/Catalyst/Response.pm @@ -28,7 +28,7 @@ has _writer => ( has write_fh => ( is=>'ro', - predicate=>'has_write_fh', + predicate=>'_has_write_fh', lazy=>1, builder=>'_build_write_fh', ); @@ -42,7 +42,7 @@ sub _build_write_fh { sub DEMOLISH { my $self = shift; - return if $self->has_write_fh; + return if $self->_has_write_fh; if($self->_has_writer) { $self->_writer->close } @@ -117,7 +117,7 @@ sub from_psgi_response { if(ref $psgi_res eq 'ARRAY') { my ($status, $headers, $body) = @$psgi_res; $self->status($status); - $self->headers($headers); + $self->headers(HTTP::Headers->new(@$headers)); if(ref $body eq 'ARRAY') { $self->body(join '', grep defined, @$body); } else { @@ -125,9 +125,10 @@ sub from_psgi_response { } } elsif(ref $psgi_res eq 'CODE') { $psgi_res->(sub { - my ($status, $headers, $maybe_body) = @_; + my $response = shift; + my ($status, $headers, $maybe_body) = @$response; $self->status($status); - $self->headers($headers); + $self->headers(HTTP::Headers->new(@$headers)); if($maybe_body) { if(ref $maybe_body eq 'ARRAY') { $self->body(join '', grep defined, @$maybe_body); @@ -137,8 +138,8 @@ sub from_psgi_response { } else { return $self->write_fh; } - }); - } else { + }); + } else { die "You can't set a Catalyst response from that, expect a valid PSGI response"; } }