X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FClassAttribute%2FRole%2FMeta%2FClass.pm;h=e9ef9da69bc6c4d9694920e07ffd931838400781;hb=aa6390299985f34313f45864361226b8e72ec272;hp=7ec220fa17d59a85533b567d080b7e90537ce449;hpb=09f9282e4b42b0dfe654f7fcf34ea1a3772816ce;p=gitmo%2FMooseX-ClassAttribute.git diff --git a/lib/MooseX/ClassAttribute/Role/Meta/Class.pm b/lib/MooseX/ClassAttribute/Role/Meta/Class.pm index 7ec220f..e9ef9da 100644 --- a/lib/MooseX/ClassAttribute/Role/Meta/Class.pm +++ b/lib/MooseX/ClassAttribute/Role/Meta/Class.pm @@ -3,39 +3,27 @@ package MooseX::ClassAttribute::Role::Meta::Class; use strict; use warnings; -use MooseX::AttributeHelpers; use MooseX::ClassAttribute::Role::Meta::Attribute; use Scalar::Util qw( blessed ); +use namespace::autoclean; use Moose::Role; -has class_attribute_map => ( - metaclass => 'Collection::Hash', - is => 'ro', - isa => 'HashRef[Moose::Meta::Attribute]', - provides => { - set => '_add_class_attribute', - exists => 'has_class_attribute', - get => 'get_class_attribute', - delete => '_remove_class_attribute', - keys => 'get_class_attribute_list', - }, - default => sub { {} }, - reader => 'get_class_attribute_map', -); +with 'MooseX::ClassAttribute::Role::Meta::Mixin::HasClassAttributes'; has _class_attribute_values => ( - metaclass => 'Collection::Hash', - is => 'ro', - isa => 'HashRef', - provides => { - get => 'get_class_attribute_value', - set => 'set_class_attribute_value', - exists => 'has_class_attribute_value', - delete => 'clear_class_attribute_value', + traits => ['Hash'], + is => 'ro', + isa => 'HashRef', + handles => { + 'get_class_attribute_value' => 'get', + 'set_class_attribute_value' => 'set', + 'has_class_attribute_value' => 'exists', + 'clear_class_attribute_value' => 'delete', }, - lazy => 1, - default => sub { $_[0]->_class_attribute_values_hashref() }, + lazy => 1, + default => sub { $_[0]->_class_attribute_values_hashref() }, + init_arg => undef, ); sub add_class_attribute { @@ -234,8 +222,6 @@ sub inline_weaken_class_slot_value { . $self->inline_class_slot_access($name) . ')'; } -no Moose::Role; - 1; __END__