use Scalar::Util 'blessed';
-our $AUTHORITY = 'cpan:STEVAN';
-
use base 'Moose::Meta::Role::Application';
sub apply {
my ($self, $role1, $role2) = @_;
+
+ # We're not checking for role names to support multiple instances of the
+ # same Parameterized role.
+ return if grep { $role1 == $_ } @{ $role2->get_roles() };
+
$self->SUPER::apply($role1, $role2);
+
$role2->add_role($role1);
}
foreach my $excluded_role_name ($role1->get_excluded_roles_list) {
if ( $role2->does_role($excluded_role_name) ) {
require Moose;
- Moose->throw_error("The class " . $role2->name . " does the excluded role '$excluded_role_name'");
+ Moose->throw_error("The role " . $role2->name . " does the excluded role '$excluded_role_name'");
}
$role2->add_excluded_roles($excluded_role_name);
}