X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FRole%2FParameterized%2FMeta%2FRole%2FParameterizable.pm;h=c72c405c1f3bd659f0c184e27f7bbd54926df26d;hb=1b0f24fa4482f5f33bcfcdaf970bb715f807e5ba;hp=b66d86e8e347034e84c18703a2f5c51de57ef2f4;hpb=f8f365484c40dd9778eb8611a0764857641831e1;p=gitmo%2FMooseX-Role-Parameterized.git diff --git a/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm b/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm index b66d86e..c72c405 100644 --- a/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm +++ b/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm @@ -3,17 +3,23 @@ use Moose; extends 'Moose::Meta::Role'; use MooseX::Role::Parameterized::Meta::Role::Parameterized; +use MooseX::Role::Parameterized::Meta::Parameter; use MooseX::Role::Parameterized::Parameters; use constant parameterized_role_metaclass => 'MooseX::Role::Parameterized::Meta::Role::Parameterized'; +use constant parameter_metaclass => 'MooseX::Role::Parameterized::Meta::Parameter'; +use constant parameters_class => 'MooseX::Role::Parameterized::Parameters'; has parameters_metaclass => ( is => 'rw', isa => 'Moose::Meta::Class', lazy => 1, default => sub { - Moose::Meta::Class->create_anon_class( - superclasses => ['MooseX::Role::Parameterized::Parameters'], + my $self = shift; + + $self->parameters_class->meta->create_anon_class( + superclasses => [$self->parameters_class], + attribute_metaclass => $self->parameter_metaclass, ); }, );