summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-07 19:37:10 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-07 19:37:10 -0500
commit506ab9101762dceacbf8c58ad01b41508db83d16 (patch)
treec599056482475b39f5752c0b11837086c6ec1c42
parent57f2ee7f5cc328b892a6172ef750e34d90c7f092 (diff)
downloadplack-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.pm21
-rw-r--r--t/basic.t4
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';
<!DOCTYPE html>
<html>
<head>
@@ -33,6 +33,8 @@ test_psgi
</body>
</html>
CONTENT
+ is($res->content, $rendered);
+ is($res->header('Content-Length'), length($rendered));
}
{