bump version to 0.97
[gitmo/Moose.git] / lib / Moose / Meta / Role / Method / Conflicting.pm
index 73eeadd..fe978f6 100644 (file)
@@ -4,15 +4,23 @@ package Moose::Meta::Role::Method::Conflicting;
 use strict;
 use warnings;
 
+use Moose::Util;
+
 use base qw(Moose::Meta::Role::Method::Required);
 
-our $VERSION   = '0.79';
+our $VERSION   = '0.97';
 $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;
 
@@ -35,18 +43,40 @@ L<Moose::Meta::Role::Method::Required>.
 
 =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
 
@@ -54,7 +84,7 @@ Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006-2009 by Infinity Interactive, Inc.
+Copyright 2006-2010 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>