X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAttrContainer.pm;h=334d5dee92498d762ecd125b1a674b9c71c36e5b;hb=ac5c933bdd463558e8d621507a53a7b247a9093e;hp=2e50cec0f562d2fad254c11ecb218639a010a681;hpb=f1634af6f0980ab7addd20dc5d90eea89b13f581;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/AttrContainer.pm b/lib/Catalyst/AttrContainer.pm index 2e50cec..334d5de 100644 --- a/lib/Catalyst/AttrContainer.pm +++ b/lib/Catalyst/AttrContainer.pm @@ -1,28 +1,18 @@ package Catalyst::AttrContainer; use Moose; -use MooseX::ClassAttribute; use Catalyst::Exception; -class_has _attr_cache => ( - is => 'rw', - isa => 'HashRef', - required => 1, - default => sub{{}} - ); -class_has _action_cache => ( - is => 'rw', - isa => 'ArrayRef', - required => 1, - default => sub{ [] } - ); +with 'Catalyst::ClassData'; + +__PACKAGE__->mk_classdata($_) for qw/_attr_cache _action_cache/; +__PACKAGE__->_attr_cache( {} ); +__PACKAGE__->_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 (); @@ -38,7 +28,7 @@ Catalyst::AttrContainer =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