summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-06-23 10:25:32 -0500
committerJesse Luehrs <doy@tozt.net>2009-06-23 10:34:08 -0500
commit00d3d42d7e81c8b41ced52f4dcb8573224b8e64c (patch)
tree41d2c7db6112804463e177f4310ea29ba8239ef5
parentbff6b3ed58e48a7c10d71e11032ee4da81bb52a6 (diff)
downloadmoosex-extension-00d3d42d7e81c8b41ced52f4dcb8573224b8e64c.tar.gz
moosex-extension-00d3d42d7e81c8b41ced52f4dcb8573224b8e64c.zip
pull out on_import and on_unimport hooks from import list
-rw-r--r--lib/MooseX/Extension.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/MooseX/Extension.pm b/lib/MooseX/Extension.pm
index de49c2a..f69c181 100644
--- a/lib/MooseX/Extension.pm
+++ b/lib/MooseX/Extension.pm
@@ -4,7 +4,7 @@ use Moose::Exporter;
use Moose::Util::MetaRole;
use Data::OptList qw(mkopt_hash);
-my ($unimport, $args);
+my ($unimport, $on_unimport, $args);
sub import {
my $caller = caller;
@@ -15,10 +15,14 @@ sub import {
($import, $unimport) = Moose::Exporter->build_import_methods(
also => \@also,
);
+ $args->{-on_import}->($caller) if defined $args->{-on_import};
+ $on_unimport = delete $args->{-on_unimport};
goto $import;
}
sub unimport {
+ my $caller = caller;
+ $on_unimport->($caller) if defined $on_unimport;
goto $unimport;
}