Doc for Parameter metaclass
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Parameter.pm
1 package MooseX::Role::Parameterized::Meta::Parameter;
2 use Moose;
3 extends 'Moose::Meta::Attribute';
4
5 # This doesn't actually do anything because _process_options does not consult
6 # the default value of "is". hrm.
7 has '+is' => (
8     default => 'ro',
9 );
10
11 around _process_options => sub {
12     my $orig = shift;
13     my ($class, $name, $options) = @_;
14
15     $options->{is} ||= 'ro';
16
17     $orig->(@_);
18 };
19
20 __PACKAGE__->meta->make_immutable(
21     inline_constructor => 1,
22     replace_constructor => 1,
23     constructor_name   => "_new",
24 );
25 no Moose;
26
27 1;
28
29 __END__
30
31 =head1 NAME
32
33 MooseX::Role::Parameterized::Meta::Parameter - metaclass for parameters
34
35 =head1 DESCRIPTION
36
37 This is the metaclass for parameter objects, a subclass of
38 L<Moose::Meta::Attribute>. Its sole purpose is to make the default value
39 of the C<is> option C<ro>.
40
41 =cut
42