Make Role::Method::Required its own entity, since it is not actually a
Shawn M Moore [Sat, 30 May 2009 18:46:47 +0000 (14:46 -0400)]
subclass of Role::Method

lib/Moose/Meta/Role/Method/Required.pm

index 8d8df5f..70e2186 100644 (file)
@@ -3,12 +3,21 @@ package Moose::Meta::Role::Method::Required;
 
 use strict;
 use warnings;
+use metaclass;
+
+use overload '""'     => sub { shift->name },   # stringify to method name
+             fallback => 1;
+
+use base qw(Class::MOP::Object);
 
 our $VERSION   = '0.79';
 $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'));
 
 1;