bump version to 0.93_03
[gitmo/Moose.git] / lib / Moose / Meta / Role / Method / Required.pm
index 262426f..c473fb1 100644 (file)
@@ -3,12 +3,26 @@ package Moose::Meta::Role::Method::Required;
 
 use strict;
 use warnings;
+use metaclass;
 
-our $VERSION   = '0.72';
+use overload '""'     => sub { shift->name },   # stringify to method name
+             fallback => 1;
+
+use base qw(Class::MOP::Object);
+
+our $VERSION   = '0.93_03';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
-use base 'Moose::Meta::Role::Method';
+# This is not a Moose::Meta::Role::Method because it has no implementation, it
+# is just a name
+
+__PACKAGE__->meta->add_attribute('name' => (
+    reader   => 'name',
+    required => 1,
+));
+
+sub new { shift->_new(@_) }
 
 1;
 
@@ -22,11 +36,37 @@ Moose::Meta::Role::Method::Required - A Moose metaclass for required methods in
 
 =head1 DESCRIPTION
 
+=head1 INHERITANCE
+
+C<Moose::Meta::Role::Method::Required> is a subclass of L<Class::MOP::Object>.
+It is B<not> a subclass of C<Moose::Meta::Role::Method> since it does not
+provide an implementation of the method.
+
+=head1 METHODS
+
+=over 4
+
+=item B<< Moose::Meta::Role::Method::Required->new(%options) >>
+
+This creates a new type constraint based on the provided C<%options>:
+
+=over 8
+
+=item * name
+
+The method name. This is required.
+
+=back
+
+=item B<< $method->name >>
+
+Returns the required method's name, as provided to the constructor.
+
+=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
 
@@ -34,7 +74,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>