use Carp 'confess';
use Devel::GlobalDestruction 'in_global_destruction';
-our $VERSION = '1.15';
+our $VERSION = '1.23';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
$self->_restore_metamethods_from($old_meta);
$self->_restore_metaattributes_from($old_meta);
+
+ for my $role ( @{ $old_meta->get_roles } ) {
+ $self->add_role($role);
+ }
}
sub add_attribute {
}
Class::MOP::load_class($application_class);
+
+ my $deprecation_check = 0;
+
+ if ( exists $args{excludes} && !exists $args{'-excludes'} ) {
+ $args{'-excludes'} = delete $args{excludes};
+ $deprecation_check = 1;
+ }
+ if ( exists $args{alias} && !exists $args{'-alias'} ) {
+ $args{'-alias'} = delete $args{alias};
+ $deprecation_check = 1;
+ }
+
+ if ( $deprecation_check ) {
+ Moose::Deprecated::deprecated(
+ feature => 'alias or excludes',
+ message =>
+ 'The alias and excludes options for role application'.
+ ' have been renamed -alias and -excludes'.
+ " (${\$other->name} is consuming ${\$self->name}".
+ " - do you need to upgrade ${\$other->name}?)"
+ );
+ }
+
+ if ( exists $args{'-excludes'} ) {
+ # I wish we had coercion here :)
+ $args{'-excludes'} = (
+ ref $args{'-excludes'} eq 'ARRAY'
+ ? $args{'-excludes'}
+ : [ $args{'-excludes'} ]
+ );
+ }
+
return $application_class->new(%args)->apply($self, $other, \%args);
}