diff options
Diffstat (limited to 'lib/Plack/Middleware/Xslate.pm')
-rw-r--r-- | lib/Plack/Middleware/Xslate.pm | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/lib/Plack/Middleware/Xslate.pm b/lib/Plack/Middleware/Xslate.pm index 4c1566e..5ef3f97 100644 --- a/lib/Plack/Middleware/Xslate.pm +++ b/lib/Plack/Middleware/Xslate.pm @@ -107,22 +107,13 @@ sub serve_path { $filename = File::Spec->abs2rel($filename, $self->root); } - my $rendered = $self->{xslate}->render($filename, $self->xslate_vars); - - 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->[0], - \@headers, - [ $rendered ] + $res->[2] = [ + $self->{xslate}->render($filename, $self->xslate_vars) ]; + + Plack::Util::header_set($res->[1], 'Content-Length', length($res->[2][0])); + + return $res; } =head1 BUGS |