From 506ab9101762dceacbf8c58ad01b41508db83d16 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 7 Oct 2012 19:37:10 -0500 Subject: use Plack::Util::header_set instead of doing it manually --- lib/Plack/Middleware/Xslate.pm | 21 ++++++--------------- 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 diff --git a/t/basic.t b/t/basic.t index a7f66b4..d73f691 100644 --- a/t/basic.t +++ b/t/basic.t @@ -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'; @@ -33,6 +33,8 @@ test_psgi CONTENT + is($res->content, $rendered); + is($res->header('Content-Length'), length($rendered)); } { -- cgit v1.2.3-54-g00ecf