From 1f0e1261cb2bc64896c9eb6b2c0a89d5bd6e6a62 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Wed, 25 Mar 2009 15:56:13 +0100 Subject: now @_ is not clobbered (more tests needed) --- TODO | 2 +- lib/Tree/Template/Declare.pm | 5 +++-- t/02-xslt.t | 10 ++++------ 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; }; }; -- cgit v1.2.3