From 7412806df23c7cc40c8da083266eaaf9d3ac8266 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Sat, 25 Apr 2009 09:39:18 +0200 Subject: added "attach_nodes" function (undocumented for now) --- lib/Tree/Template/Declare.pm | 8 +++++++- t/06-code.t | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Tree/Template/Declare.pm b/lib/Tree/Template/Declare.pm index c103615..356c2fd 100644 --- a/lib/Tree/Template/Declare.pm +++ b/lib/Tree/Template/Declare.pm @@ -64,11 +64,17 @@ sub _build_group { local $current_node[0]=$node; $_[0]->(caller_args(1)); } - if ($current_node[0]) { + if ($current_node[0] && !defined(wantarray)) { $builder->add_child_node($current_node[0],$node); } return $node; }, + attach_nodes => sub { + if ($current_node[0]) { + $builder->add_child_node($current_node[0],$_) + for @_; + } + }, name => sub ($) { $builder->set_node_name($current_node[0],$_[0]); return; diff --git a/t/06-code.t b/t/06-code.t index a24427d..959fce2 100644 --- a/t/06-code.t +++ b/t/06-code.t @@ -21,9 +21,11 @@ sub make_item { sub make_list { my (@items)=@_; + my @item_nodes=map {make_item(@$_)} @items; + return node { name 'list'; - make_item(@$_) for @items; + attach_nodes @item_nodes; }; } -- cgit v1.2.3