Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Moose / Meta / Class / Immutable / Trait.pm
1 package Moose::Meta::Class::Immutable::Trait;
2
3 use strict;
4 use warnings;
5
6 use Class::MOP;
7
8 our $VERSION   = '0.93';
9 $VERSION = eval $VERSION;
10 our $AUTHORITY = 'cpan:STEVAN';
11
12 use base 'Class::MOP::Class::Immutable::Trait';
13
14 sub add_role { $_[1]->_immutable_cannot_call }
15
16 sub calculate_all_roles {
17     my $orig = shift;
18     my $self = shift;
19     @{ $self->{__immutable}{calculate_all_roles} ||= [ $self->$orig ] };
20 }
21
22 1;
23
24 __END__
25
26 =pod
27
28 =head1 NAME
29
30 Moose::Meta::Class::Immutable::Trait - Implements immutability for metaclass objects
31
32 =head1 DESCRIPTION
33
34 This class makes some Moose-specific metaclass methods immutable. This
35 is deep guts.
36
37 =head1 AUTHOR
38
39 Yuval Kogman E<lt>nothingmuch@cpan.orgE<gt>
40
41 =head1 COPYRIGHT AND LICENSE
42
43 Copyright 2009 by Infinity Interactive, Inc.
44
45 L<http://www.iinteractive.com>
46
47 This library is free software; you can redistribute it and/or modify
48 it under the same terms as Perl itself.
49
50 =cut
51