run hooks on role creation
[gitmo/Role-Tiny.git] / lib / Role / Tiny.pm
index c5dfe6c..07fb3d4 100644 (file)
@@ -13,6 +13,7 @@ our %INFO;
 our %APPLIED_TO;
 our %COMPOSED;
 our %COMPOSITE_INFO;
+our @ON_ROLE_CREATE;
 
 # Module state workaround totally stolen from Zefram's Module::Runtime.
 
@@ -72,6 +73,7 @@ sub import {
   @{$INFO{$target}{not_methods}={}}{@not_methods} = @not_methods;
   # a role does itself
   $APPLIED_TO{$target} = { $target => undef };
+  $_->($target) for @ON_ROLE_CREATE;
 }
 
 sub role_application_steps {
@@ -641,6 +643,8 @@ Returns true if the given package is a role.
 =item * On perl 5.8.8 and earlier, applying a role to an object won't apply any
 overloads from the role to all copies of the object.
 
+=back
+
 =head1 SEE ALSO
 
 L<Role::Tiny> is the attribute-less subset of L<Moo::Role>; L<Moo::Role> is