summaryrefslogtreecommitdiff
path: root/lib/Tree/Transform.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Transform.pm')
-rw-r--r--lib/Tree/Transform.pm22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/Tree/Transform.pm b/lib/Tree/Transform.pm
index 7b9af2c..d130c3b 100644
--- a/lib/Tree/Transform.pm
+++ b/lib/Tree/Transform.pm
@@ -1,7 +1,10 @@
package Tree::Transform;
-use Moose;
+use strict;
+use warnings;
use Sub::Exporter;
use Params::Validate ':all';
+use Tree::Transform::Utils;
+use Tree::Transform::Transformer;
our $VERSION='0.1';
@@ -13,14 +16,6 @@ Sub::Exporter::setup_exporter({
}
});
-sub _rules_store {
- no strict 'refs';
- if (!defined *{$_[0].'::_tree_transform_rules'}{HASH}) {
- *{$_[0].'::_tree_transform_rules'}={};
- }
- return *{$_[0].'::_tree_transform_rules'}{HASH};
-}
-
sub tree_rule {
my (%args)=validate(@_, {
match => { type => SCALAR, optional => 1 },
@@ -31,7 +26,7 @@ sub tree_rule {
# TODO at least one of 'name' and 'match' must be specified
- my $store=_rules_store(scalar caller);
+ my $store=Tree::Transform::Utils::_rules_store(scalar caller);
push @{$store->{by_match}},\%args;
if ($args{name}) {
@@ -41,10 +36,15 @@ sub tree_rule {
return;
}
+sub _transformer_class { 'Tree::Transform::Transformer' };
+
sub new_transformer {
+ my ($rules_package)=@_;
+
+ return _transformer_class->new(rules_package=>$rules_package);
}
-__PACKAGE__->meta->make_immutable;no Moose;
+1;
__END__
=head1 NAME