Use Moose's new create_anon_role API
Shawn M Moore [Tue, 25 Nov 2008 06:23:20 +0000 (06:23 +0000)]
lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm

index 584382a..0b9b566 100644 (file)
@@ -6,6 +6,8 @@ extends 'Moose::Meta::Role';
 use MooseX::Role::Parameterized::Meta::Role::Parameterized;
 use MooseX::Role::Parameterized::Parameters;
 
+use constant parameterized_role_metaclass => 'MooseX::Role::Parameterized::Meta::Role::Parameterized';
+
 has parameter_metaclass => (
     is      => 'rw',
     isa     => 'Moose::Meta::Class',
@@ -42,12 +44,7 @@ sub generate_role {
 
     my $parameters = $self->construct_parameters(%args);
 
-    my $metaclass = Moose::Meta::Class->create_anon_class(
-        superclasses => ['MooseX::Role::Parameterized::Meta::Role::Parameterized'],
-    );
-    my $role = $metaclass->new_object(
-        parameters => $parameters,
-    );
+    my $role = $self->parameterized_role_metaclass->create_anon_role(parameters => $parameters);
 
     local $MooseX::Role::Parameterized::CURRENT_METACLASS = $role;
     $self->role_generator->($parameters,