diff options
author | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-19 14:45:23 +0100 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-19 14:45:23 +0100 |
commit | 8abf3c4080812b0295bbd9b3f658f77d60d76f22 (patch) | |
tree | 9e694bfe52d38cbc7d63edfbaf1c9fafe6fe9341 /lib/Tree/Transform.pm | |
parent | the great renaming (diff) | |
parent | the great renaming, part 2 (diff) | |
download | Tree-Transform-XSLTish-8abf3c4080812b0295bbd9b3f658f77d60d76f22.tar.gz Tree-Transform-XSLTish-8abf3c4080812b0295bbd9b3f658f77d60d76f22.tar.bz2 Tree-Transform-XSLTish-8abf3c4080812b0295bbd9b3f658f77d60d76f22.zip |
renaming merge
Diffstat (limited to 'lib/Tree/Transform.pm')
-rw-r--r-- | lib/Tree/Transform.pm | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/lib/Tree/Transform.pm b/lib/Tree/Transform.pm deleted file mode 100644 index bf3d18b..0000000 --- a/lib/Tree/Transform.pm +++ /dev/null @@ -1,77 +0,0 @@ -package Tree::Transform; -use strict; -use warnings; -use Sub::Exporter; -use Params::Validate ':all'; -use Tree::Transform::Utils; -use Tree::Transform::Transformer; -use Carp::Clan qw(^Tree::Transform); - -our $VERSION='0.1'; - -Sub::Exporter::setup_exporter({ - exports => [qw(tree_rule default_rules new_transformer)], - groups => { - default => [ 'tree_rule', - 'default_rules', - 'new_transformer' => {-as => 'new'} ], - } -}); - -sub default_rules { - my $store=Tree::Transform::Utils::_rules_store(scalar caller); - - push @{$store->{by_match}}, - {match=> '/',priority=>0,action=>sub { $_[0]->apply_rules } }, - {match=> '*',priority=>0,action=>sub { $_[0]->apply_rules } }, - ; - return; -} - -sub tree_rule { - my (%args)=validate(@_, { - match => { type => SCALAR, optional => 1 }, - action => { type => CODEREF }, - name => { type => SCALAR, optional => 1}, - priority => { type => SCALAR, default => 1 }, - }); - - # TODO at least one of 'name' and 'match' must be specified - # TODO default priority mased on match - - my $store=Tree::Transform::Utils::_rules_store(scalar caller); - - if ($args{match}) { - push @{$store->{by_match}},\%args; - } - if ($args{name}) { - if (exists $store->{by_name}{$args{name}}) { - carp "Duplicate rule named $args{name}, ignoring"; - return; - } - $store->{by_name}{$args{name}}=\%args; - } - - return; -} - -sub _transformer_class { 'Tree::Transform::Transformer' }; - -sub new_transformer { - my ($rules_package)=@_; - - return _transformer_class->new(rules_package=>$rules_package); -} - -1; -__END__ - -=head1 NAME - -Tree::Transform - transform tree data, like XSLT but in Perl - -=head1 AUTHOR - -Gianni Ceccarelli <dakkar@thenautilus.net> - -=cut |