X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FRole%2FMethod%2FRequired.pm;h=a63fb3038d01991752726846f10cf9970900c2ba;hb=60f0816092ffe11986388dd2bba56a356b697843;hp=cfc348cb63b01387184422866549b9f285c75231;hpb=03e7dbecf3e631d5fb5884b16e3eafe4c14624c3;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Role/Method/Required.pm b/lib/Moose/Meta/Role/Method/Required.pm index cfc348c..a63fb30 100644 --- a/lib/Moose/Meta/Role/Method/Required.pm +++ b/lib/Moose/Meta/Role/Method/Required.pm @@ -3,11 +3,26 @@ package Moose::Meta::Role::Method::Required; use strict; use warnings; +use metaclass; -our $VERSION = '0.53'; +use overload '""' => sub { shift->name }, # stringify to method name + fallback => 1; + +use base qw(Class::MOP::Object); + +our $VERSION = '1.09'; +$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; @@ -21,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 @@ -33,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