[Jifty-commit] r6054 - Template-Declare/lib/Template/Declare
Jifty commits
jifty-commit at lists.jifty.org
Mon Dec 1 04:16:14 EST 2008
Author: ruz
Date: Mon Dec 1 04:16:14 2008
New Revision: 6054
Modified:
Template-Declare/lib/Template/Declare/Tags.pm
Log:
* use less buffers. we either want return a data or append to the current buffer.
don't create a new buffer when we append.
Modified: Template-Declare/lib/Template/Declare/Tags.pm
==============================================================================
--- Template-Declare/lib/Template/Declare/Tags.pm (original)
+++ Template-Declare/lib/Template/Declare/Tags.pm Mon Dec 1 04:16:14 2008
@@ -437,30 +437,21 @@
sub _outs {
my $raw = shift;
my @phrases = (@_);
- my $buf;
- Template::Declare->new_buffer_frame;
+
+ my $return_data = (defined wantarray and not wantarray)? 1 : 0;
+ Template::Declare->new_buffer_frame if $return_data;
foreach my $item ( grep {defined} @phrases ) {
- Template::Declare->new_buffer_frame;
- my $returned =
- ref($item) eq 'CODE'
+ my $returned = ref($item) eq 'CODE'
? $item->()
- : ( $raw ? $item : _postprocess($item) ) || '';
- my $content = Template::Declare->buffer->data || '';
- Template::Declare->end_buffer_frame;
- Template::Declare->buffer->append( $content . $returned );
+ : $raw
+ ? $item
+ : _postprocess($item);
+ Template::Declare->buffer->append( $returned );
}
-
- $buf = Template::Declare->buffer->data || '';
- Template::Declare->end_buffer_frame;
- if ( defined wantarray and not wantarray ) {
- return $buf;
- } else {
- Template::Declare->buffer->append($buf);
-
- }
- return '';
+ return '' unless $return_data;
+ return Template::Declare->end_buffer_frame->data;
}
=head2 get_current_attr
@@ -756,20 +747,16 @@
sub show_page {
my $template = shift;
my $args = \@_;
- my $INSIDE_TEMPLATE = 0;
+
+ my $return_data = defined wantarray();
# if we're inside a template, we should show private templates
- Template::Declare->new_buffer_frame;
+ Template::Declare->new_buffer_frame if $return_data;
_show_template( $template, 0, $args );
- my $data = Template::Declare->buffer->data;
- Template::Declare->end_buffer_frame;
%ELEMENT_ID_CACHE = (); # We're done. we can clear the cache
- if (not defined wantarray()) {
- Template::Declare->buffer->append($data);
- return undef;
- } else {
- return $data;
- }
+ return undef unless $return_data;
+
+ return Template::Declare->end_buffer_frame->data;
}
sub _resolve_relative_template_path {
@@ -953,9 +940,7 @@
if ( defined wantarray ) {
Template::Declare->new_buffer_frame;
my $returned = $self->();
- my $content = Template::Declare->buffer->data();
- Template::Declare->end_buffer_frame;
- return ( $content . $returned );
+ return (Template::Declare->end_buffer_frame->data . $returned);
} else {
return $self->();
More information about the Jifty-commit
mailing list