diff options
Diffstat (limited to 'lib/Web/Response.pm')
-rw-r--r-- | lib/Web/Response.pm | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/Web/Response.pm b/lib/Web/Response.pm index 6516021..65fc372 100644 --- a/lib/Web/Response.pm +++ b/lib/Web/Response.pm @@ -157,10 +157,19 @@ sub finalize { sub _finalize_streaming { my $self = shift; + my $streaming = $self->streaming_response; + # XXX cookies? - # XXX encoding? - return $self->streaming_response; + return $streaming unless $self->has_encoding; + + return Plack::Util::response_cb($streaming, sub { + return sub { + my $chunk = shift; + return unless defined $chunk; + return $self->_encode($chunk); + }; + }); } sub _encode { |