has write_fh => (
is=>'ro',
- predicate=>'has_write_fh',
+ predicate=>'_has_write_fh',
lazy=>1,
builder=>'_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
}
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 {
}
} 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);
} else {
return $self->write_fh;
}
- });
- } else {
+ });
+ } else {
die "You can't set a Catalyst response from that, expect a valid PSGI response";
}
}
sub myaction :Local Args {
my ($self, $c) = @_;
- $c->res->from_psgi_response($app->($self->env));
+ $c->res->from_psgi_response($app->($c->req->env));
}
Please note this does not attempt to map or nest your PSGI application under