X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FClassAttribute.pm;h=5de825715da7fc261a898334881761e054dba602;hb=0388e669286b6625e3bb5c1afdeaec3b01335a91;hp=219b6ffaf66e842b416667fde5e61b82acd973e5;hpb=88b7f2c81c47c0498b82d95a4f9fc71258d689f1;p=gitmo%2FMooseX-ClassAttribute.git diff --git a/lib/MooseX/ClassAttribute.pm b/lib/MooseX/ClassAttribute.pm index 219b6ff..5de8257 100644 --- a/lib/MooseX/ClassAttribute.pm +++ b/lib/MooseX/ClassAttribute.pm @@ -6,13 +6,13 @@ use warnings; our $VERSION = '0.10'; our $AUTHORITY = 'cpan:DROLSKY'; -use Moose 0.89 (); +use Moose 0.96 (); use Moose::Exporter; -use MooseX::ClassAttribute::Role::Meta::Class; -use MooseX::ClassAttribute::Role::Meta::Role; -use MooseX::ClassAttribute::Role::Meta::Application::ToClass; -use MooseX::ClassAttribute::Role::Meta::Application::ToRole; -use MooseX::ClassAttribute::Role::Meta::Application::ToInstance; +use MooseX::ClassAttribute::Trait::Class; +use MooseX::ClassAttribute::Trait::Role; +use MooseX::ClassAttribute::Trait::Application::ToClass; +use MooseX::ClassAttribute::Trait::Application::ToRole; +use MooseX::ClassAttribute::Trait::Application::ToInstance; Moose::Exporter->setup_import_methods( with_meta => ['class_has'] ); @@ -23,16 +23,16 @@ sub init_meta { return Moose::Util::MetaRole::apply_metaclass_roles( for => $p{for_class}, class_metaroles => { - class => ['MooseX::ClassAttribute::Role::Meta::Class'], + class => ['MooseX::ClassAttribute::Trait::Class'], }, role_metaroles => { - role => ['MooseX::ClassAttribute::Role::Meta::Role'], + role => ['MooseX::ClassAttribute::Trait::Role'], application_to_class => - ['MooseX::ClassAttribute::Role::Meta::Application::ToClass'], + ['MooseX::ClassAttribute::Trait::Application::ToClass'], application_to_role => - ['MooseX::ClassAttribute::Role::Meta::Application::ToRole'], + ['MooseX::ClassAttribute::Trait::Application::ToRole'], application_to_instance => [ - 'MooseX::ClassAttribute::Role::Meta::Application::ToInstance' + 'MooseX::ClassAttribute::Trait::Application::ToInstance' ], }, ); @@ -86,13 +86,13 @@ This module allows you to declare class attributes in exactly the same way as object attributes, using C instead of C. You can use any feature of Moose's attribute declarations, including -overriding a parent's attributes, delegation (C), and -attribute metaclasses, and it should just work. The one exception is -the "required" flag, which is not allowed for class attributes. +overriding a parent's attributes, delegation (C), attribute traits, +etc. All features should just work. The one exception is the "required" flag, +which is not allowed for class attributes. The accessor methods for class attribute may be called on the class directly, or on objects of that class. Passing a class attribute to -the constructor will not set it. +the constructor will not set that attribute. =head1 FUNCTIONS @@ -106,11 +106,11 @@ C as well. =head2 Implementation and Immutability This module will add a role to your class's metaclass, See -L for details. This role +L for details. This role provides introspection methods for class attributes. Class attributes themselves do the -L role. +L role. There is also a L which provides part of the inlining implementation for class @@ -120,7 +120,14 @@ attributes. This module should work with most attribute metaclasses and traits, but it's possible that conflicts could occur. This module has been -tested to work with C. +tested to work with Moose's native traits. + +=head2 Class Attributes in Roles + +You can add a class attribute to a role. When that role is applied to a class, +the class will have the relevant class attributes added. Note that attribute +defaults will be calculated when the class attribute is composed into the +class. =head1 DONATIONS