summaryrefslogtreecommitdiff
path: root/lib/Tree/Transform/XSLTish.pm
diff options
context:
space:
mode:
authorGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-25 16:48:14 +0100
committerGianni Ceccarelli <dakkar@dechirico.(none)>2009-03-25 16:48:14 +0100
commit1a2822c8b182b19d70fd116a3a0bcf038caa6aef (patch)
tree82ec103c12ab95c939980974a33be10279531649 /lib/Tree/Transform/XSLTish.pm
parentdoc tweak (diff)
downloadTree-Transform-XSLTish-1a2822c8b182b19d70fd116a3a0bcf038caa6aef.tar.gz
Tree-Transform-XSLTish-1a2822c8b182b19d70fd116a3a0bcf038caa6aef.tar.bz2
Tree-Transform-XSLTish-1a2822c8b182b19d70fd116a3a0bcf038caa6aef.zip
now you can specify the engine in the transfor class
Diffstat (limited to 'lib/Tree/Transform/XSLTish.pm')
-rw-r--r--lib/Tree/Transform/XSLTish.pm29
1 files changed, 25 insertions, 4 deletions
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 {