[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