5a266e693bab8aae531032ceda6f5811c0c534e8
[gitmo/Moose.git] / lib / Moose / Meta / Mixin / AttributeCore.pm
1 package Moose::Meta::Mixin::AttributeCore;
2
3 use strict;
4 use warnings;
5
6 our $VERSION   = '1.15';
7 our $AUTHORITY = 'cpan:STEVAN';
8
9 use base 'Class::MOP::Mixin::AttributeCore';
10
11 __PACKAGE__->meta->add_attribute( 'isa'  => ( reader => '_isa_metadata' ) );
12 __PACKAGE__->meta->add_attribute( 'does' => ( reader => '_does_metadata' ) );
13 __PACKAGE__->meta->add_attribute( 'is'   => ( reader => '_is_metadata' ) );
14
15 __PACKAGE__->meta->add_attribute( 'required' => ( reader => 'is_required' ) );
16 __PACKAGE__->meta->add_attribute( 'lazy'     => ( reader => 'is_lazy' ) );
17 __PACKAGE__->meta->add_attribute(
18     'lazy_build' => ( reader => 'is_lazy_build' ) );
19 __PACKAGE__->meta->add_attribute( 'coerce' => ( reader => 'should_coerce' ) );
20 __PACKAGE__->meta->add_attribute( 'weak_ref' => ( reader => 'is_weak_ref' ) );
21 __PACKAGE__->meta->add_attribute(
22     'auto_deref' => ( reader => 'should_auto_deref' ) );
23 __PACKAGE__->meta->add_attribute(
24     'type_constraint' => (
25         reader    => 'type_constraint',
26         predicate => 'has_type_constraint',
27     )
28 );
29 __PACKAGE__->meta->add_attribute(
30     'trigger' => (
31         reader    => 'trigger',
32         predicate => 'has_trigger',
33     )
34 );
35 __PACKAGE__->meta->add_attribute(
36     'handles' => (
37         reader    => 'handles',
38         writer    => '_set_handles',
39         predicate => 'has_handles',
40     )
41 );
42 __PACKAGE__->meta->add_attribute(
43     'documentation' => (
44         reader    => 'documentation',
45         predicate => 'has_documentation',
46     )
47 );
48
49 1;
50
51 __END__
52
53 =pod
54
55 =head1 NAME
56
57 Moose::Meta::Mixin::AttributeCore - Core attributes shared by attribute metaclasses
58
59 =head1 DESCRIPTION
60
61 This class implements the core attributes (aka properties) shared by all Moose
62 attributes. See the L<Moose::Meta::Attribute> documentation for API details.
63
64 =head1 BUGS
65
66 See L<Moose/BUGS> for details on reporting bugs.
67
68 =head1 AUTHORS
69
70 Dave Rolsky E<lt>autarch@urth.orgE<gt>
71
72 =head1 COPYRIGHT AND LICENSE
73
74 Copyright 2006-2010 by Infinity Interactive, Inc.
75
76 L<http://www.iinteractive.com>
77
78 This library is free software; you can redistribute it and/or modify
79 it under the same terms as Perl itself.
80
81 =cut