summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGianni Ceccarelli <dakkar@dechirico.(none)>2009-04-25 09:39:18 +0200
committerGianni Ceccarelli <dakkar@dechirico.(none)>2009-04-25 09:39:18 +0200
commit7412806df23c7cc40c8da083266eaaf9d3ac8266 (patch)
tree493e26214e9546277f57f94e92ccf02a8c29e337
parentpasses critic (diff)
downloadTree-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.pm8
-rw-r--r--t/06-code.t4
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;
};
}