use Scalar::Util 'blessed';
-our $VERSION = '1.16';
-$VERSION = eval $VERSION;
-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);
}
1;
+# ABSTRACT: Compose a role into another role
+
__END__
=pod
-=head1 NAME
-
-Moose::Meta::Role::Application::ToRole - Compose a role into another role
-
=head1 DESCRIPTION
=head2 METHODS
See L<Moose/BUGS> for details on reporting bugs.
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2006-2010 by Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
=cut