X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAttrContainer.pm;h=921a886931aecfad3fa448db86273272d397245e;hb=88eee38e25dd1a991008fb5f61b848fcecb97ad0;hp=dae87dc12e21a30d2d142ea143f0e2ec2ec088d8;hpb=4cfa1efab08273928363729c3843f18a3a66a4c4;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/AttrContainer.pm b/lib/Catalyst/AttrContainer.pm index dae87dc..921a886 100644 --- a/lib/Catalyst/AttrContainer.pm +++ b/lib/Catalyst/AttrContainer.pm @@ -1,28 +1,19 @@ package Catalyst::AttrContainer; use Moose; -use MooseX::ClassAttribute; use Catalyst::Exception; +use Scalar::Util 'blessed'; +with 'Catalyst::ClassData'; -class_has _attr_cache => ( - is => 'rw', - isa => 'HashRef', - required => 1, - default => sub{{}} - ); -clas_has _action_cache => ( - is => 'rw', - isa => 'ArrayRef', - required => 1, - default => sub{ [] } - ); +no Moose; + +__PACKAGE__->mk_classdata(_attr_cache => {} ); +__PACKAGE__->mk_classdata( _action_cache => [] ); # note - see attributes(3pm) sub MODIFY_CODE_ATTRIBUTES { my ( $class, $code, @attrs ) = @_; - #can't the below just be $class->_attr_cache->{$code} = \@attrs; ? $class->_attr_cache( { %{ $class->_attr_cache }, $code => [@attrs] } ); - #why can't this just be push @{$class->_action_cache}, [$code, \@attrs] ? $class->_action_cache( [ @{ $class->_action_cache }, [ $code, [@attrs] ] ] ); return (); @@ -32,13 +23,13 @@ sub FETCH_CODE_ATTRIBUTES { $_[0]->_attr_cache->{ $_[1] } || () } =head1 NAME -Catalyst::AttrContainer +Catalyst::AttrContainer - Handles code attribute storage and caching =head1 SYNOPSIS =head1 DESCRIPTION -This class sets up the code attribute cache. It's a base class for +This class sets up the code attribute cache. It's a base class for L. =head1 METHODS @@ -56,10 +47,9 @@ Attribute function. See attributes(3pm) L L. -=head1 AUTHOR +=head1 AUTHORS -Sebastian Riedel, C -Marcus Ramberg, C +Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT