Commit | Line | Data |
---|---|---|
ba599d1c | 1 | package Catalyst::AttrContainer; |
2 | ||
e7dc25cd | 3 | use Moose; |
ba599d1c | 4 | use Catalyst::Exception; |
46d0346d | 5 | with 'Catalyst::ClassData'; |
e7dc25cd | 6 | |
0fc2d522 | 7 | no Moose; |
8 | ||
46d0346d | 9 | __PACKAGE__->mk_classdata(_attr_cache => {} ); |
10 | __PACKAGE__->mk_classdata( _action_cache => [] ); | |
ba599d1c | 11 | |
12 | # note - see attributes(3pm) | |
13 | sub MODIFY_CODE_ATTRIBUTES { | |
14 | my ( $class, $code, @attrs ) = @_; | |
57e45928 | 15 | $class->_attr_cache( { %{ $class->_attr_cache }, $code => [@attrs] } ); |
16 | $class->_action_cache( | |
17 | [ @{ $class->_action_cache }, [ $code, [@attrs] ] ] ); | |
ba599d1c | 18 | return (); |
19 | } | |
20 | ||
21 | sub FETCH_CODE_ATTRIBUTES { $_[0]->_attr_cache->{ $_[1] } || () } | |
22 | ||
23 | =head1 NAME | |
24 | ||
2f381252 | 25 | Catalyst::AttrContainer - Handles code attribute storage and caching |
ba599d1c | 26 | |
27 | =head1 SYNOPSIS | |
28 | ||
29 | =head1 DESCRIPTION | |
30 | ||
ac5c933b | 31 | This class sets up the code attribute cache. It's a base class for |
a1e61a69 | 32 | L<Catalyst::Controller>. |
649fd1fa | 33 | |
ba599d1c | 34 | =head1 METHODS |
35 | ||
b5ecfcf0 | 36 | =head2 FETCH_CODE_ATTRIBUTES |
ba599d1c | 37 | |
649fd1fa | 38 | Attribute function. See attributes(3pm) |
39 | ||
b5ecfcf0 | 40 | =head2 MODIFY_CODE_ATTRIBUTES |
ba599d1c | 41 | |
649fd1fa | 42 | Attribute function. See attributes(3pm) |
43 | ||
ba599d1c | 44 | =head1 SEE ALSO |
45 | ||
a1e61a69 | 46 | L<Catalyst::Dispatcher> |
ba599d1c | 47 | L<Catalyst>. |
48 | ||
2f381252 | 49 | =head1 AUTHORS |
ba599d1c | 50 | |
2f381252 | 51 | Catalyst Contributors, see Catalyst.pm |
ba599d1c | 52 | |
53 | =head1 COPYRIGHT | |
54 | ||
55 | This program is free software, you can redistribute it and/or modify it under | |
56 | the same terms as Perl itself. | |
57 | ||
58 | =cut | |
59 | ||
60 | 1; |