diff options
author | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-04-25 09:39:18 +0200 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-04-25 09:39:18 +0200 |
commit | 7412806df23c7cc40c8da083266eaaf9d3ac8266 (patch) | |
tree | 493e26214e9546277f57f94e92ccf02a8c29e337 | |
parent | passes critic (diff) | |
download | Tree-Template-Declare-7412806df23c7cc40c8da083266eaaf9d3ac8266.tar.gz Tree-Template-Declare-7412806df23c7cc40c8da083266eaaf9d3ac8266.tar.bz2 Tree-Template-Declare-7412806df23c7cc40c8da083266eaaf9d3ac8266.zip |
added "attach_nodes" function (undocumented for now)
-rw-r--r-- | lib/Tree/Template/Declare.pm | 8 | ||||
-rw-r--r-- | 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; }; } |