diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-07 19:37:10 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-07 19:37:10 -0500 |
commit | 506ab9101762dceacbf8c58ad01b41508db83d16 (patch) | |
tree | c599056482475b39f5752c0b11837086c6ec1c42 | |
parent | 57f2ee7f5cc328b892a6172ef750e34d90c7f092 (diff) | |
download | plack-middleware-xslate-506ab9101762dceacbf8c58ad01b41508db83d16.tar.gz plack-middleware-xslate-506ab9101762dceacbf8c58ad01b41508db83d16.zip |
use Plack::Util::header_set instead of doing it manually
-rw-r--r-- | lib/Plack/Middleware/Xslate.pm | 21 | ||||
-rw-r--r-- | t/basic.t | 4 |
2 files changed, 9 insertions, 16 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 @@ -21,7 +21,7 @@ test_psgi { my $res = $cb->(GET '/index.html'); ok($res->is_success) || diag($res->content); - is($res->content, <<'CONTENT'); + my $rendered = <<'CONTENT'; <!DOCTYPE html> <html> <head> @@ -33,6 +33,8 @@ test_psgi </body> </html> CONTENT + is($res->content, $rendered); + is($res->header('Content-Length'), length($rendered)); } { |