Make parameter_metaclass rw, if a user wants to shoot himself in the foot I'll load...
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Role.pm
1 #!/usr/bin/env perl
2 package MooseX::Role::Parameterized::Meta::Role;
3 use Moose;
4 extends 'Moose::Meta::Role';
5
6 use MooseX::Role::Parameterized::Parameters;
7
8 has parameter_metaclass => (
9     is      => 'rw',
10     isa     => 'Moose::Meta::Class',
11     lazy    => 1,
12     default => sub {
13         Moose::Meta::Class->create_anon_class(
14             superclasses => ['MooseX::Role::Parameterized::Parameters'],
15         );
16     },
17 );
18
19 sub add_parameter {
20     my $self = shift;
21     $self->parameter_metaclass->add_attribute(@_);
22 }
23
24 sub construct_parameters {
25     my $self = shift;
26     $self->parameter_metaclass->construct_instance(@_);
27 }
28
29 __PACKAGE__->meta->make_immutable;
30 no Moose;
31
32 1;
33