summaryrefslogtreecommitdiff
path: root/lib/Tree/Transform/XSLTish/Utils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Transform/XSLTish/Utils.pm')
-rw-r--r--lib/Tree/Transform/XSLTish/Utils.pm13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/Tree/Transform/XSLTish/Utils.pm b/lib/Tree/Transform/XSLTish/Utils.pm
index bfb438c..770426f 100644
--- a/lib/Tree/Transform/XSLTish/Utils.pm
+++ b/lib/Tree/Transform/XSLTish/Utils.pm
@@ -14,15 +14,14 @@ sub _rules_store {
return $pack->get_package_symbol($RULES_NAME);
}
-my $ENGINE_FACTORY_NAME='$_tree_transform_engine_factory';
+our $ENGINE_FACTORY_NAME='_tree_transform_engine_factory';
+my $ENGINE_FACTORY_NAME_WITH_SIGIL='&'.$ENGINE_FACTORY_NAME;
-sub _engine_factory {
- my $pack=Class::MOP::Class->initialize($_[0]);
+sub _set_engine_factory {
+ my ($pack_name,$factory)=@_;
+ my $pack=Class::MOP::Class->initialize($pack_name);
- if (! $pack->has_package_symbol($ENGINE_FACTORY_NAME) ) {
- $pack->add_package_symbol($ENGINE_FACTORY_NAME,undef);
- }
- return $pack->get_package_symbol($ENGINE_FACTORY_NAME);
+ $pack->add_package_symbol($ENGINE_FACTORY_NAME_WITH_SIGIL,$factory);
}