1 package MooseX::ClassAttribute::Trait::Application::ToClass;
6 use namespace::autoclean;
9 with 'MooseX::ClassAttribute::Trait::Application';
11 sub apply_class_attributes {
16 $class = Moose::Util::MetaRole::apply_metaclass_roles(
19 class => ['MooseX::ClassAttribute::Trait::Class'],
23 my $attr_metaclass = $class->attribute_metaclass();
25 foreach my $attribute_name ( $role->get_class_attribute_list() ) {
26 if ( $class->has_class_attribute($attribute_name)
27 && $class->get_class_attribute($attribute_name)
28 != $role->get_class_attribute($attribute_name) ) {
32 $class->add_class_attribute(
33 $role->get_class_attribute($attribute_name)
34 ->attribute_for_class($attr_metaclass) );
47 MooseX::ClassAttribute::Trait::Application::ToClass - A trait that supports applying class attributes to classes
51 This trait is used to allow the application of roles containing class
52 attributes to classes.
56 Dave Rolsky, C<< <autarch@urth.org> >>
60 See L<MooseX::ClassAttribute> for details.
62 =head1 COPYRIGHT & LICENSE
64 Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
66 This program is free software; you can redistribute it and/or modify
67 it under the same terms as Perl itself.