X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FRole%2FMethod%2FRequired.pm;h=17a0a64784151e4fc465825a0654d4994892439a;hb=refs%2Ftags%2F1.12;hp=3f44b3e9992fd70b826cc5a7e87d99fb726a4b76;hpb=1aab401193858f866a86af1b13b417dca841f567;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Role/Method/Required.pm b/lib/Moose/Meta/Role/Method/Required.pm index 3f44b3e..17a0a64 100644 --- a/lib/Moose/Meta/Role/Method/Required.pm +++ b/lib/Moose/Meta/Role/Method/Required.pm @@ -3,12 +3,26 @@ package Moose::Meta::Role::Method::Required; use strict; use warnings; +use metaclass; -our $VERSION = '0.64'; +use overload '""' => sub { shift->name }, # stringify to method name + fallback => 1; + +use base qw(Class::MOP::Object); + +our $VERSION = '1.12'; $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 is a subclass of L. +It is B a subclass of C 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 for details on reporting bugs. =head1 AUTHOR @@ -34,7 +74,7 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006-2008 by Infinity Interactive, Inc. +Copyright 2006-2010 by Infinity Interactive, Inc. L