summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-25 15:56:13 +0100
committerGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-25 15:56:13 +0100
commit1f0e1261cb2bc64896c9eb6b2c0a89d5bd6e6a62 (patch)
treec486d30d91358cd45a0d3bdb72395e59d7b5213e
parentadded TODO (diff)
downloadTree-Template-Declare-1f0e1261cb2bc64896c9eb6b2c0a89d5bd6e6a62.tar.gz
Tree-Template-Declare-1f0e1261cb2bc64896c9eb6b2c0a89d5bd6e6a62.tar.bz2
Tree-Template-Declare-1f0e1261cb2bc64896c9eb6b2c0a89d5bd6e6a62.zip
now @_ is not clobbered (more tests needed)
-rw-r--r--TODO2
-rw-r--r--lib/Tree/Template/Declare.pm5
-rw-r--r--t/02-xslt.t10
3 files changed, 8 insertions, 9 deletions
diff --git a/TODO b/TODO
index e5abd3d..0771a37 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
.. -*- mode: rst; coding: utf-8 -*-
- make it use whatever tree class we want, via adapters
-- try not to clobber ``@_``
+- try not to clobber ``@_`` *might work*
diff --git a/lib/Tree/Template/Declare.pm b/lib/Tree/Template/Declare.pm
index 372781b..8c33b52 100644
--- a/lib/Tree/Template/Declare.pm
+++ b/lib/Tree/Template/Declare.pm
@@ -2,6 +2,7 @@ package Tree::Template::Declare;
use strict;
use warnings;
use Sub::Exporter;
+use Devel::Caller 'caller_args';
use Tree::DAG_Node::XPath;
our $VERSION='0.1';
@@ -17,7 +18,7 @@ our $current_node;
sub tree(&) {
local $current_node=undef;
- my ($ret)=$_[0]->();
+ my ($ret)=$_[0]->(caller_args(1));
#warn "returning @{[ $ret->name ]}\n";
return $ret;
}
@@ -27,7 +28,7 @@ sub node(&) {
#warn "new node\n";
{
local $current_node=$node;
- $_[0]->();
+ $_[0]->(caller_args(1));
}
if ($current_node) {
#warn "adding to parent (@{[ $current_node->name ]})\n";
diff --git a/t/02-xslt.t b/t/02-xslt.t
index 0870716..2778586 100644
--- a/t/02-xslt.t
+++ b/t/02-xslt.t
@@ -7,18 +7,16 @@ use strict;
use warnings;
tree_rule match => '/', action => sub {
- my $t=$_[0];
tree {
- $t->apply_rules;
+ $_[0]->apply_rules;
};
};
tree_rule match => '*', priority => 0, action => sub {
- my $t=$_[0];
node {
- name $t->it->name;
- attribs %{$t->it->attributes};
- $t->apply_rules;
+ name $_[0]->it->name;
+ attribs %{$_[0]->it->attributes};
+ $_[0]->apply_rules;
};
};