diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-07 00:47:39 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-07 00:47:46 -0500 |
commit | bee0ff8a0fc620f0359d60b23b1e15991163ea04 (patch) | |
tree | 22740b3186d4cbbe369ee9b2e218eb28162afede /lib | |
parent | bc3ce88fa5ddacfd9fe1bff2c96fa208a5a65166 (diff) | |
download | plack-middleware-xslate-bee0ff8a0fc620f0359d60b23b1e15991163ea04.tar.gz plack-middleware-xslate-bee0ff8a0fc620f0359d60b23b1e15991163ea04.zip |
fix up content-length after rendering
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Plack/Middleware/Xslate.pm | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/Plack/Middleware/Xslate.pm b/lib/Plack/Middleware/Xslate.pm index c520931..6d051c7 100644 --- a/lib/Plack/Middleware/Xslate.pm +++ b/lib/Plack/Middleware/Xslate.pm @@ -109,9 +109,20 @@ sub serve_path { my $rendered = $self->{xslate}->render($filename, $self->xslate_vars); - $res->[2] = [ $rendered ]; + my @headers; + while (@{ $res->[1] }) { + my ($k, $v) = splice @{ $res->[1] }, 0, 2; + if ($k =~ /^content-length$/i) { + $v = length($rendered); + } + push @headers, $k, $v; + } - return $res; + return [ + $res->[0], + \@headers, + [ $rendered ] + ]; } =head1 BUGS |