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'],
['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)
}
1;
+
+# ABSTRACT: A trait that supports applying class attributes to roles
+
+__END__
+
+=pod
+
+=head1 DESCRIPTION
+
+This trait is used to allow the application of roles containing class
+attributes to roles.
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=cut