Make sure roles are applied to right metaclass
[gitmo/MooseX-ClassAttribute.git] / lib / MooseX / ClassAttribute / Trait / Application / ToRole.pm
index 52a6047..babdbff 100644 (file)
@@ -11,7 +11,8 @@ 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;
@@ -27,6 +28,14 @@ sub _apply_class_attributes {
         },
     );
 
+    $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)