- Roles can now have class attributes, which will be fully initialized when
the role is applied to a class.
+- Many modules have been renamed from MooseX::ClassAttribute::Role::Meta::* to
+ MooseX::ClassAttribute::Trait::*.
+
+- Deprecated the get_class_attribute_map method.
+
0.10 2009-08-26
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Meta::Role::Attribute - An attribute metaclass for class attributes in roles
+
+=head1 DESCRIPTION
+
+This class overrides L<Moose::Meta::Role::Attribute> to support class
+attribute declaration in roles.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
};
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Trait::Application - A trait that supports role application for roles with class attributes
+
+=head1 DESCRIPTION
+
+This trait is used to allow the application of roles containing class
+attributes.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Trait::Application::ToClass - A trait that supports applying class attributes to classes
+
+=head1 DESCRIPTION
+
+This trait is used to allow the application of roles containing class
+attributes to classes.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Trait::Application::ToClass - A trait that supports applying class attributes to instances
+
+=head1 DESCRIPTION
+
+This trait is used to allow the application of roles containing class
+attributes to object instances.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Trait::Application::ToRole - A trait that supports applying class attributes to roles
+
+=head1 DESCRIPTION
+
+This trait is used to allow the application of roles containing class
+attributes to roles.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
=head1 NAME
-MooseX::ClassAttribute::Trait::Attribute - An attribute role for classes with class attributes
+MooseX::ClassAttribute::Trait::Attribute - A trait for class attributes
=head1 DESCRIPTION
it under the same terms as Perl itself.
=cut
-
-
=head1 NAME
-MooseX::ClassAttribute::Trait::Class - A metaclass role for classes with class attributes
+MooseX::ClassAttribute::Trait::Class - A trait for classes with class attributes
=head1 SYNOPSIS
=head2 $meta->get_class_attribute_list()
-=head2 $meta->get_class_attribute_map()
-
These methods operate on the current metaclass only.
=head2 $meta->add_class_attribute(...)
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Trait::Mixin::HasClassAttributes - A mixin trait for things which have class attributes
+
+=head1 DESCRIPTION
+
+This trait is like L<Class::MOP::Mixin::HasAttributes>, except that it works
+with class attributes instead of object attributes.
+
+See L<MooseX::ClassAttribute::Trait::Class> and
+L<MooseX::ClassAttribute::Trait::Role> for API details.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
=head1 NAME
-MooseX::ClassAttribute::Trait::Class - A metaclass role for classes with class attributes
+MooseX::ClassAttribute::Trait::Role - A trait for roles with class attributes
=head1 SYNOPSIS
=head1 DESCRIPTION
-This role adds awareness of class attributes to a metaclass object. It
-provides a set of introspection methods that largely parallel the
-existing attribute methods, except they operate on class attributes.
+This role adds awareness of class attributes to a role metaclass object. It
+provides a set of introspection methods that largely parallel the existing
+attribute methods, except they operate on class attributes.
=head1 METHODS
=head2 $meta->get_class_attribute_list()
-=head2 $meta->get_class_attribute_map()
-
-These methods operate on the current metaclass only.
+These methods are exactly like their counterparts in
+L<MooseX::ClassAttribute::Trait::Class>.
=head2 $meta->add_class_attribute(...)
=head2 $meta->remove_class_attribute($name)
-If the named class attribute exists, it is removed from the class,
-along with its accessor methods.
-
-=head2 $meta->get_all_class_attributes()
-
-This method returns a list of attribute objects for the class and all
-its parent classes.
-
-=head2 $meta->find_class_attribute_by_name($name)
-
-This method looks at the class and all its parent classes for the
-named class attribute.
-
-=head2 $meta->get_class_attribute_value($name)
-
-=head2 $meta->set_class_attribute_value($name, $value)
-
-=head2 $meta->set_class_attribute_value($name)
-
-=head2 $meta->clear_class_attribute_value($name)
-
-These methods operate on the storage for class attribute values, which
-is attached to the metaclass object.
-
-There's really no good reason for you to call these methods unless
-you're doing some deep hacking. They are named as public methods
-solely because they are used by other meta roles and classes in this
-distribution.
-
-=head2 inline_class_slot_access($name)
-
-=head2 inline_get_class_slot_value($name)
-
-=head2 inline_set_class_slot_value($name, $val_name)
-
-=head2 inline_is_class_slot_initialized($name)
-
-=head2 inline_deinitialize_class_slot($name)
-
-=head2 inline_weaken_class_slot_value($name)
-
-These methods return code snippets for inlining.
-
-There's really no good reason for you to call these methods unless
-you're doing some deep hacking. They are named as public methods
-solely because they are used by other meta roles and classes in this
-distribution.
+If the named class attribute exists, it is removed from the role.
=head1 AUTHOR