[Jifty-commit] r3073 - in Template-Declare: lib/Template/Declare

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sat Mar 31 03:21:24 EDT 2007


Author: jesse
Date: Sat Mar 31 03:21:23 2007
New Revision: 3073

Modified:
   Template-Declare/   (props changed)
   Template-Declare/lib/Template/Declare/Tags.pm

Log:
 r54389 at pinglin:  jesse | 2007-03-31 00:19:30 -0700
 * Closer to right handling of embedded tags as closures.  I think all that's left is stringification.
 


Modified: Template-Declare/lib/Template/Declare/Tags.pm
==============================================================================
--- Template-Declare/lib/Template/Declare/Tags.pm	(original)
+++ Template-Declare/lib/Template/Declare/Tags.pm	Sat Mar 31 03:21:23 2007
@@ -108,9 +108,7 @@
 
 =cut
 
-sub outs {
-    outs_raw( map { _escape_utf8($_); } grep {defined} @_ );
-}
+#sub outs { outs_raw( map { _escape_utf8($_); } grep {defined} @_ ); }
 
 =head2 outs_raw STUFF
 
@@ -118,12 +116,40 @@
 
 =cut
 
-sub outs_raw {
-    Template::Declare->buffer->append( join( '', grep {defined} @_ ));
-    return '';
-}
+#sub outs_raw { Template::Declare->buffer->append( join( '', grep {defined} @_ )); return ''; }
+
+
+
+sub outs { _outs(0, @_); }
+sub outs_raw { _outs(1, @_); }
+
+sub _outs {
+    my $raw     = shift;
+    my @phrases = (@_);
+    my $buf;
+    Template::Declare->new_buffer_frame;
+
+    foreach my $item ( grep {defined} @phrases ) {
 
+        Template::Declare->new_buffer_frame;
+        my $returned = ref($item) eq 'CODE'
+            ? $item->()
+            : ( $raw ? $item : _escape_utf8($item) ) ||'';
+        my $content = Template::Declare->buffer->data ||'';
+        Template::Declare->end_buffer_frame;
+        Template::Declare->buffer->append( $content . $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 '';
+}
 
 =head2 get_current_attr 
 


More information about the Jifty-commit mailing list