summaryrefslogtreecommitdiff
path: root/lib/Tree/Transform/XSLTish/Utils.pm
blob: 77746d86a2585018afb6819c5293c59c502d0d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package Tree::Transform::XSLTish::Utils; 
use strict;
use warnings;
use Class::MOP;
 
our $VERSION='0.3';
 
my $RULES_NAME='%_tree_transform_rules';
 
sub _rules_store {
    my $pack=Class::MOP::Class->initialize($_[0]);
 
    if (! $pack->has_package_symbol($RULES_NAME) ) {
        $pack->add_package_symbol($RULES_NAME,{});
    }
    return $pack->get_package_symbol($RULES_NAME);
}
 
our $ENGINE_FACTORY_NAME='_tree_transform_engine_factory';
my $ENGINE_FACTORY_NAME_WITH_SIGIL='&'.$ENGINE_FACTORY_NAME;
 
sub _set_engine_factory {
    my ($pack_name,$factory)=@_;
    my $pack=Class::MOP::Class->initialize($pack_name);
 
    $pack->add_package_symbol($ENGINE_FACTORY_NAME_WITH_SIGIL,$factory);
 
    return;
}
 
 
sub _get_inheritance {
    return Class::MOP::Class->initialize($_[0])->class_precedence_list;
}
 
1;
__END__
 
=head1 NAME
 
Tree::Transform::XSLTish::Utils - utility functions
 
=head1 AUTHOR
 
Gianni Ceccarelli <dakkar@thenautilus.net>
 
=cut