[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