summaryrefslogtreecommitdiff
path: root/lib/Tree/Template/Declare.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Template/Declare.pm')
-rw-r--r--lib/Tree/Template/Declare.pm19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Tree/Template/Declare.pm b/lib/Tree/Template/Declare.pm
index a2be8e2..185d9eb 100644
--- a/lib/Tree/Template/Declare.pm
+++ b/lib/Tree/Template/Declare.pm
@@ -8,26 +8,27 @@ use Data::Dumper;
our $VERSION='0.1';
-Sub::Exporter::setup_exporter({
+{
+my $exporter=Sub::Exporter::build_exporter({
groups => {
default => \&_build_group,
},
- collectors => [ INIT => \&_init_args, 'options' ],
});
-sub _init_args {
- my (undef,$args)=@_;
+sub import {
+ my ($pack,@rest)=@_;
- @{$args->{import_args}}=( [ -default => undef] )
- unless @{$args->{import_args}};
-
- return 1;
+ if (@rest) {
+ @_=($pack,-default => {@rest});
+ }
+ goto $exporter;
+}
}
sub _build_group {
my ($class,$name,$args,$coll)=@_;
- my $builder=$args->{builder} || $coll->{options}{builder};
+ my $builder=$args->{builder};
if (!ref($builder)) {
my $builder_pkg=$builder;