Add a new role metaclass for roles that have been parameterized
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Role / Parameterizable.pm
index 8664ba7..9fd9b76 100644 (file)
@@ -3,6 +3,7 @@ package MooseX::Role::Parameterized::Meta::Role::Parameterizable;
 use Moose;
 extends 'Moose::Meta::Role';
 
+use MooseX::Role::Parameterized::Meta::Role::Parameterized;
 use MooseX::Role::Parameterized::Parameters;
 
 has parameter_metaclass => (
@@ -39,12 +40,14 @@ sub generate_role {
     confess "A role generator is required to generate roles"
         unless $self->has_role_generator;
 
+    my $parameters = $self->construct_parameters(%args);
+
     my $metaclass = Moose::Meta::Class->create_anon_class(
-        superclasses => ['Moose::Meta::Role'],
+        superclasses => ['MooseX::Role::Parameterized::Meta::Role::Parameterized'],
+    );
+    my $role = $metaclass->construct_instance(
+        parameters => $parameters,
     );
-    my $role = $metaclass->construct_instance;
-
-    my $parameters = $self->construct_parameters(%args);
 
     local $MooseX::Role::Parameterized::CURRENT_METACLASS = $role;
     $self->role_generator->($parameters,