role sugar, which sets role_generator
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Role.pm
CommitLineData
7b42fc96 1#!/usr/bin/env perl
2package MooseX::Role::Parameterized::Meta::Role;
3use Moose;
4extends 'Moose::Meta::Role';
5
6use MooseX::Role::Parameterized::Parameters;
7
f563c3cd 8has parameter_metaclass => (
39d3d5d0 9 is => 'rw',
f563c3cd 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
5b82ffb1 19has role_generator => (
20 is => 'rw',
21 isa => 'CodeRef',
22 predicate => 'has_role_generator',
23);
24
f563c3cd 25sub add_parameter {
26 my $self = shift;
27 $self->parameter_metaclass->add_attribute(@_);
28}
7b42fc96 29
f74750fb 30sub construct_parameters {
31 my $self = shift;
32 $self->parameter_metaclass->construct_instance(@_);
33}
34
7b42fc96 35__PACKAGE__->meta->make_immutable;
36no Moose;
37
381;
39