summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-07 00:47:39 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-07 00:47:46 -0500
commitbee0ff8a0fc620f0359d60b23b1e15991163ea04 (patch)
tree22740b3186d4cbbe369ee9b2e218eb28162afede
parentbc3ce88fa5ddacfd9fe1bff2c96fa208a5a65166 (diff)
downloadplack-middleware-xslate-bee0ff8a0fc620f0359d60b23b1e15991163ea04.tar.gz
plack-middleware-xslate-bee0ff8a0fc620f0359d60b23b1e15991163ea04.zip
fix up content-length after rendering
-rw-r--r--lib/Plack/Middleware/Xslate.pm15
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