use strict;
use warnings;
-our $VERSION = '0.68';
+our $VERSION = '0.72';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
metaclass
attribute_metaclass
method_metaclass
+ wrapped_method_metaclass
instance_metaclass
);
qw(
attribute_metaclass
method_metaclass
+ wrapped_method_metaclass
instance_metaclass
);
=item * method_metaclass_roles => \@roles
+=item * wrapped_method_metaclass_roles => \@roles
+
=item * instance_metaclass_roles => \@roles
=item * constructor_class_roles => \@roles
This function will apply the specified roles to the object's base class.
-=head1 PROBLEMS WITH METACLASS ROLES AND SUBCLASS
-
-Because of the way this module works, there is an ordering problem
-which occurs in certain situations. This sequence of events causes an
-error:
-
-=over 4
-
-=item 1.
-
-There is a class (C<ClassA>) which uses some extension(s) that apply
-roles to the metaclass.
-
-=item 2.
-
-You have another class (C<ClassB>) which wants to subclass C<ClassA> and
-apply some more extensions.
-
-=back
-
-Normally, the call to C<extends> will happen at run time, I<after> the
-additional extensions are applied. This causes an error when we try to
-make the metaclass for C<ClassB> compatible with the metaclass for
-C<ClassA>.
-
-We hope to be able to fix this in the future.
-
-For now the workaround is for C<ClassB> to make sure it extends C<ClassA>
-I<before> it loads extensions:
-
- package ClassB;
-
- use Moose;
-
- BEGIN { extends 'ClassA' }
-
- use MooseX::SomeExtension;
-
=head1 AUTHOR
Dave Rolsky E<lt>autarch@urth.orgE<gt>