e3791232095ba836b95744a65c1b43176aa35829
[gitmo/Moose.git] / lib / Moose / Meta / Role / Method / Required.pm
1
2 package Moose::Meta::Role::Method::Required;
3
4 use strict;
5 use warnings;
6 use metaclass;
7
8 use overload '""'     => sub { shift->name },   # stringify to method name
9              fallback => 1;
10
11 use base qw(Class::MOP::Object);
12
13 our $VERSION   = '0.79';
14 $VERSION = eval $VERSION;
15 our $AUTHORITY = 'cpan:STEVAN';
16
17 # This is not a Moose::Meta::Role::Method because it has no implementation, it
18 # is just a name
19
20 __PACKAGE__->meta->add_attribute('name' => (reader => 'name'));
21
22 sub new { shift->_new(@_) }
23
24 sub is_conflict { 0 }
25
26 1;
27
28 __END__
29
30 =pod
31
32 =head1 NAME
33
34 Moose::Meta::Role::Method::Required - A Moose metaclass for required methods in Roles
35
36 =head1 DESCRIPTION
37
38 =head1 INHERITANCE
39
40 C<Moose::Meta::Role::Method::Required> is a subclass of L<Class::MOP::Object>.
41 It is B<not> a subclass of C<Moose::Meta::Role::Method> since it does not
42 provide an implementation of the method.
43
44 =head1 METHODS
45
46 =over 4
47
48 =item B<< Moose::Meta::Role::Method::Required->new(%options) >>
49
50 This creates a new type constraint based on the provided C<%options>:
51
52 =over 8
53
54 =item * name
55
56 The method name. This is required.
57
58 =back
59
60 =item B<< $method->name >>
61
62 Returns the required method's name, as provided to the constructor.
63
64 =item B<< $method->is_conflict >>
65
66 Returns whether the method requirement is due to a conflict. By default for
67 this class, it's false.
68
69 =back
70
71 =head1 BUGS
72
73 All complex software has bugs lurking in it, and this module is no
74 exception. If you find a bug please either email me, or add the bug
75 to cpan-RT.
76
77 =head1 AUTHOR
78
79 Stevan Little E<lt>stevan@iinteractive.comE<gt>
80
81 =head1 COPYRIGHT AND LICENSE
82
83 Copyright 2006-2009 by Infinity Interactive, Inc.
84
85 L<http://www.iinteractive.com>
86
87 This library is free software; you can redistribute it and/or modify
88 it under the same terms as Perl itself.
89
90 =cut