From 3abef1625e51eca5236f10b7f2cec9f94ab221be Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 13 Feb 2011 14:12:08 +0000 Subject: prep for version 0.3 - drop MooseX::AttributeHelpers, use newer Moose instead - Tree::XPathEngine is no longer a hard dependency - minor documentation cleanup --- lib/Tree/Transform/XSLTish/Transformer.pm | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'lib/Tree/Transform/XSLTish/Transformer.pm') diff --git a/lib/Tree/Transform/XSLTish/Transformer.pm b/lib/Tree/Transform/XSLTish/Transformer.pm index d5ad6ec..16e27bd 100644 --- a/lib/Tree/Transform/XSLTish/Transformer.pm +++ b/lib/Tree/Transform/XSLTish/Transformer.pm @@ -1,14 +1,11 @@ package Tree::Transform::XSLTish::Transformer; use Moose; -use MooseX::AttributeHelpers; use Moose::Util::TypeConstraints; -use Params::Validate ':all'; use Tree::Transform::XSLTish::Utils; use Tree::Transform::XSLTish::Context; -use Tree::XPathEngine; use Carp::Clan qw(^Tree::Transform::XSLTish); -our $VERSION='0.2'; +our $VERSION='0.3'; subtype 'Tree::Transform::XSLTish::Engine' => as 'Object' @@ -19,18 +16,19 @@ subtype 'Tree::Transform::XSLTish::Engine' has 'rules_package' => (is => 'ro', isa => 'ClassName'); has 'context_stack' => ( - metaclass => 'Collection::Array', + traits => ['Array'], is => 'rw', isa => 'ArrayRef[Tree::Transform::XSLTish::Context]', default => sub { [] }, - provides => { - last => 'context', - push => 'enter', - pop => 'leave', - empty => 'has_context', + handles => { + enter => 'push', + leave => 'pop', + has_context => 'count', }, ); +sub context { return $_[0]->context_stack->[-1] } + has 'engine' => ( is => 'ro', isa => 'Tree::Transform::XSLTish::Engine', @@ -47,6 +45,7 @@ sub _build_engine { return $factory->(); } } + require Tree::XPathEngine; return Tree::XPathEngine->new(); } @@ -164,6 +163,8 @@ sub find_rule_by_name_in_package { if (exists $rules->{$name}) { return $rules->{$name}; } + + return; } sub rule_matches { @@ -296,7 +297,7 @@ L and returns the first defined result. =head2 C Gets all the rules having a C attribute, filters those for -which L returns true, sorts them priority, and returns +which L returns true, sorts them by priority, and returns the one with the highest priority. Dies if there is more than one rule with the highest priority; returns -- cgit v1.2.3