use strict;
use warnings;
+use Moose::Util;
+
use base qw(Moose::Meta::Role::Method::Required);
-our $VERSION = '0.79';
+our $VERSION = '1.25';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
-__PACKAGE__->meta->add_attribute('roles' => (reader => 'roles'));
+__PACKAGE__->meta->add_attribute('roles' => (
+ reader => 'roles',
+ required => 1,
+));
-sub is_conflict { 1 }
+sub roles_as_english_list {
+ my $self = shift;
+ Moose::Util::english_list( map { q{'} . $_ . q{'} } @{ $self->roles } );
+}
1;
=over 4
-=item B<< $method->is_conflict >>
+=item B<< Moose::Meta::Role::Method::Conflicting->new(%options) >>
+
+This creates a new type constraint based on the provided C<%options>:
+
+=over 8
+
+=item * name
+
+The method name. This is required.
+
+=item * roles
+
+The list of role names that generated the conflict. This is required.
+
+=back
+
+=item B<< $method->name >>
+
+Returns the conflicting method's name, as provided to the constructor.
+
+=item B<< $method->roles >>
+
+Returns the roles that generated this conflicting method, as provided to the
+constructor.
+
+=item B<< $method->roles_as_english_list >>
-Returns whether the method requirement is due to a conflict. By default for
-this class, it's true.
+Returns the roles that generated this conflicting method as an English list.
=back
=head1 BUGS
-All complex software has bugs lurking in it, and this module is no
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
+See L<Moose/BUGS> for details on reporting bugs.
=head1 AUTHOR
=head1 COPYRIGHT AND LICENSE
-Copyright 2006-2009 by Infinity Interactive, Inc.
+Copyright 2006-2010 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>