X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FClassAttribute%2FTrait%2FApplication%2FToRole.pm;h=babdbff305298b80009185dd5f3acbea5b407a1b;hb=fb949f725181568e823cd9eb0c1b7c0b1b3e1b98;hp=2d2e23e745f89bc9df39511677b2b0183910c4d7;hpb=04b89789fd31a0a17c38b3673043efd616848b8a;p=gitmo%2FMooseX-ClassAttribute.git diff --git a/lib/MooseX/ClassAttribute/Trait/Application/ToRole.pm b/lib/MooseX/ClassAttribute/Trait/Application/ToRole.pm index 2d2e23e..babdbff 100644 --- a/lib/MooseX/ClassAttribute/Trait/Application/ToRole.pm +++ b/lib/MooseX/ClassAttribute/Trait/Application/ToRole.pm @@ -5,19 +5,19 @@ use warnings; use Moose::Util::MetaRole; use MooseX::ClassAttribute::Trait::Application::ToClass; -use MooseX::ClassAttribute::Trait::Application::ToInstance; use namespace::autoclean; use Moose::Role; with 'MooseX::ClassAttribute::Trait::Application'; -sub apply_class_attributes { +around apply => sub { + my $orig = shift; my $self = shift; my $role1 = shift; my $role2 = shift; - $role2 = Moose::Util::MetaRole::apply_metaclass_roles( + $role2 = Moose::Util::MetaRole::apply_metaroles( for => $role2, role_metaroles => { role => ['MooseX::ClassAttribute::Trait::Role'], @@ -25,12 +25,17 @@ sub apply_class_attributes { ['MooseX::ClassAttribute::Trait::Application::ToClass'], application_to_role => ['MooseX::ClassAttribute::Trait::Application::ToRole'], - application_to_instance => [ - 'MooseX::ClassAttribute::Trait::Application::ToInstance' - ], }, ); + $self->$orig( $role1, $role2 ); +}; + +sub _apply_class_attributes { + my $self = shift; + my $role1 = shift; + my $role2 = shift; + foreach my $attribute_name ( $role1->get_class_attribute_list() ) { if ( $role2->has_class_attribute($attribute_name) && $role2->get_class_attribute($attribute_name) @@ -52,32 +57,19 @@ sub apply_class_attributes { 1; +# ABSTRACT: A trait that supports applying class attributes to roles + __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<< >> - =head1 BUGS See L 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