File Coverage

blib/lib/Catalyst/AttrContainer.pm
Criterion Covered Total %
statement 18 19 94.7
branch 0 2 0.0
condition n/a
subroutine 5 6 83.3
pod n/a
total 23 27 85.2


line stmt bran cond sub pod time code
1             package Catalyst::AttrContainer;
2              
3 57     57   763 use strict;
  57         537  
  57         840  
4 57     57   1042 use base qw/Class::Accessor::Fast Class::Data::Inheritable/;
  57         542  
  57         850  
5              
6 57     57   1052 use Catalyst::Exception;
  57         586  
  57         1280  
7 57     57   1059 use NEXT;
  57         607  
  57         1112  
8              
9             __PACKAGE__->mk_classdata($_) for qw/_attr_cache _action_cache/;
10             __PACKAGE__->_attr_cache( {} );
11             __PACKAGE__->_action_cache( [] );
12              
13             # note - see attributes(3pm)
14             sub MODIFY_CODE_ATTRIBUTES {
15 11138     11138   188339     my ( $class, $code, @attrs ) = @_;
16 11138         130257     $class->_attr_cache( { %{ $class->_attr_cache }, $code => [@attrs] } );
  11138         215197  
17 11138         189166     $class->_action_cache(
18 11138         247582         [ @{ $class->_action_cache }, [ $code, [@attrs] ] ] );
19 11138         198804     return ();
20             }
21              
22 0 0   0     sub FETCH_CODE_ATTRIBUTES { $_[0]->_attr_cache->{ $_[1] } || () }
23              
24             =head1 NAME
25            
26             Catalyst::AttrContainer
27            
28             =head1 SYNOPSIS
29            
30             =head1 DESCRIPTION
31            
32             This class sets up the code attribute cache. It's a base class for
33             L<Catalyst::Controller>.
34            
35             =head1 METHODS
36            
37             =head2 FETCH_CODE_ATTRIBUTES
38            
39             Attribute function. See attributes(3pm)
40            
41             =head2 MODIFY_CODE_ATTRIBUTES
42            
43             Attribute function. See attributes(3pm)
44            
45             =head1 SEE ALSO
46            
47             L<Catalyst::Dispatcher>
48             L<Catalyst>.
49            
50             =head1 AUTHOR
51            
52             Sebastian Riedel, C<sri@cpan.org>
53             Marcus Ramberg, C<mramberg@cpan.org>
54            
55             =head1 COPYRIGHT
56            
57             This program is free software, you can redistribute it and/or modify it under
58             the same terms as Perl itself.
59            
60             =cut
61              
62             1;
63