X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FRole%2FMethod%2FRequired.pm;h=d4915428e482aa484ef431a08e3613fd47108b85;hb=e462f6f3d260687b8f7372b112a50c5c2a2c431c;hp=bf3a2a38ca02cf35e448f7378053d7da403549a8;hpb=b2ad68e3fbe4016e354980a636c1ed39e941162a;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Role/Method/Required.pm b/lib/Moose/Meta/Role/Method/Required.pm index bf3a2a3..d491542 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.67'; +use overload '""' => sub { shift->name }, # stringify to method name + fallback => 1; + +use base qw(Class::MOP::Object); + +our $VERSION = '1.05'; $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-2009 by Infinity Interactive, Inc. +Copyright 2006-2010 by Infinity Interactive, Inc. L