[Jifty-commit] r2419 - in jifty/branches/template-declare: .
lib/Jifty
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Thu Dec 21 23:39:57 EST 2006
Author: jesse
Date: Thu Dec 21 23:39:57 2006
New Revision: 2419
Modified:
jifty/branches/template-declare/ (props changed)
jifty/branches/template-declare/lib/Jifty/Everything.pm
jifty/branches/template-declare/lib/Jifty/Server.pm
jifty/branches/template-declare/lib/Jifty/View/Declare/Handler.pm
Log:
r46388 at dhcp64-134-35-102: jesse | 2006-12-21 20:39:24 -0800
* print headers at the right time
Modified: jifty/branches/template-declare/lib/Jifty/Everything.pm
==============================================================================
--- jifty/branches/template-declare/lib/Jifty/Everything.pm (original)
+++ jifty/branches/template-declare/lib/Jifty/Everything.pm Thu Dec 21 23:39:57 2006
@@ -45,6 +45,7 @@
use Jifty::Logger ();
use Jifty::Handler ();
use Jifty::View::Static::Handler ();
+use Jifty::View::Declare::Handler ();
use Jifty::View::Mason::Handler ();
use Jifty::Model::Metadata ();
Modified: jifty/branches/template-declare/lib/Jifty/Server.pm
==============================================================================
--- jifty/branches/template-declare/lib/Jifty/Server.pm (original)
+++ jifty/branches/template-declare/lib/Jifty/Server.pm Thu Dec 21 23:39:57 2006
@@ -44,6 +44,10 @@
$self->recording_on if $ENV{'JIFTY_RECORD'};
use Hook::LexWrap;
+ wrap 'Jifty::View::Declare::Handler::send_http_header', pre => sub {
+ print STDOUT "HTTP/1.0 ". (Jifty->handler->apache->{headers_out}->{'Status'} || '200 Jifty OK') . "\n";
+ };
+
wrap 'HTML::Mason::FakeApache::send_http_header', pre => sub {
my $r = shift;
my $status = $r->header_out('Status') || '200 Jifty OK';
Modified: jifty/branches/template-declare/lib/Jifty/View/Declare/Handler.pm
==============================================================================
--- jifty/branches/template-declare/lib/Jifty/View/Declare/Handler.pm (original)
+++ jifty/branches/template-declare/lib/Jifty/View/Declare/Handler.pm Thu Dec 21 23:39:57 2006
@@ -22,7 +22,6 @@
return $self;
}
-
sub show {
my $self = shift;
my $code_template = shift;
@@ -30,33 +29,35 @@
no warnings qw/redefine utf8/;
local *Jifty::Web::out = sub {
shift; # Turn the method into a function
- my $r = Jifty->handler->apache;
- unless ( $r->http_header_sent ) {
- $r->content_type || $r->content_type('text/html; charset=utf-8'); # Set up a default
- if ( $r->content_type =~ /charset=([\w-]+)$/ ) {
- my $enc = $1;
- binmode *STDOUT, ((lc($enc) =~ /utf-?8/) ? ":utf8" : "encoding($enc)");
- }
- eval {
- #HTML::Mason::FakeApache's send_http_header uses "print STDOUT"
- # this reimplements that.
- Template::Declare::outs( $r->http_header );
- $r->{http_header_sent} = 1;
- };
+ unless ( Jifty->handler->stash->{http_header_sent} ) {
+ $self->send_http_header();
}
+ local $Template::Declare::Tags::BUFFER = '';
goto &Template::Declare::Tags::outs;
};
+ print STDOUT Template::Declare::Tags::show($code_template);
- local $Template::Declare::Tags::BUFFER = '';
- my $rv = Template::Declare::Tags::show($code_template);
-
- # XXX - Kluge - Before $r->send_http_headers is fixed for real, escape all non-latin1 characters.
- print STDOUT Encode::encode( latin1 => $rv, &Encode::FB_XMLCREF )
- unless Jifty->handler->apache->http_header_sent;
return undef;
}
+sub send_http_header {
+ my $self = shift;
+ my $r = Jifty->handler->apache;
+ $r->content_type
+ || $r->content_type('text/html; charset=utf-8'); # Set up a default
+ if ( $r->content_type =~ /charset=([\w-]+)$/ ) {
+ my $enc = $1;
+ binmode *STDOUT,
+ ( ( lc($enc) =~ /utf-?8/ ) ? ":utf8" : "encoding($enc)" );
+ }
+
+ #HTML::Mason::FakeApache's send_http_header uses "print STDOUT"
+ # this reimplements that.
+ print STDOUT $r->http_header;
+ Jifty->handler->stash->{http_header_sent} = 1;
+}
+
sub resolve_template { my $pkg =shift; return Template::Declare->resolve_template(@_);}
1;
More information about the Jifty-commit
mailing list