From 1a2822c8b182b19d70fd116a3a0bcf038caa6aef Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Wed, 25 Mar 2009 16:48:14 +0100 Subject: now you can specify the engine in the transfor class --- lib/Tree/Transform/XSLTish.pm | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'lib/Tree/Transform/XSLTish.pm') diff --git a/lib/Tree/Transform/XSLTish.pm b/lib/Tree/Transform/XSLTish.pm index 3889b3a..97a6f1f 100644 --- a/lib/Tree/Transform/XSLTish.pm +++ b/lib/Tree/Transform/XSLTish.pm @@ -9,12 +9,15 @@ use Carp::Clan qw(^Tree::Transform::XSLTish); our $VERSION='0.1'; +my @DEFAULT_EXPORTS=('tree_rule', + 'default_rules', + 'new_transformer' => {-as => 'new'}); + Sub::Exporter::setup_exporter({ - exports => [qw(tree_rule default_rules new_transformer)], + exports => [qw(tree_rule default_rules new_transformer engine_class engine_factory)], groups => { - default => [ 'tree_rule', - 'default_rules', - 'new_transformer' => {-as => 'new'} ], + default => \@DEFAULT_EXPORTS, + engine => [@DEFAULT_EXPORTS, qw(engine_class engine_factory)], } }); @@ -55,6 +58,24 @@ sub tree_rule { return; } +sub engine_class { + my ($classname)=@_; + + my $factory=Tree::Transform::XSLTish::Utils::_engine_factory(scalar caller); + $$factory=sub{$classname->new()}; + + return; +} + +sub engine_factory { + my ($new_factory)=@_; + + my $factory=Tree::Transform::XSLTish::Utils::_engine_factory(scalar caller); + $$factory=$new_factory; + + return; +} + sub _transformer_class { 'Tree::Transform::XSLTish::Transformer' }; sub new_transformer { -- cgit v1.2.3