Apply the parameterizable role to the parameterized role 8)
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Role / Parameterizable.pm
index 510ce6e..c9f1553 100644 (file)
@@ -2,8 +2,6 @@ package MooseX::Role::Parameterized::Meta::Role::Parameterizable;
 use Moose;
 extends 'Moose::Meta::Role';
 
-# ABSTRACT: metaclass for parameterizable roles
-
 use MooseX::Role::Parameterized::Meta::Role::Parameterized;
 use MooseX::Role::Parameterized::Parameters;
 
@@ -63,6 +61,9 @@ sub generate_role {
     my $role = $self->parameterized_role_metaclass->create_anon_role(parameters => $parameters);
 
     local $MooseX::Role::Parameterized::CURRENT_METACLASS = $role;
+
+    $self->apply_parameterized_role($role);
+
     $self->role_generator->($parameters,
         operating_on => $role,
     );
@@ -79,8 +80,30 @@ sub apply {
     $role->apply($class, %args);
 }
 
+sub apply_parameterized_role {
+    my $self = shift;
+
+    $self->SUPER::apply(@_);
+}
+
 __PACKAGE__->meta->make_immutable;
 no Moose;
 
 1;
 
+__END__
+
+=head1 NAME
+
+MooseX::Role::Parameterized::Meta::Role::Parameterizable - metaclass for parameterizable roles
+
+=head1 DESCRIPTION
+
+This is the metaclass for parameteriz-able roles, roles that have their
+parameters currently unbound. These are the roles that you use L<Moose/with>,
+but instead of composing the parameteriz-able role, we construct a new
+parameteriz-ed role
+(L<MooseX::Role::Parameterized::Meta::Role::Parameterized>).
+
+=cut
+