now uses faster methods for accessors and some other minor cleanup stuff
[gitmo/MooseX-AttributeHelpers.git] / lib / MooseX / AttributeHelpers / MethodProvider / Counter.pm
CommitLineData
8e3fab6d 1
2package MooseX::AttributeHelpers::MethodProvider::Counter;
3use Moose::Role;
4
457dc4fb 5our $VERSION = '0.03';
6our $AUTHORITY = 'cpan:STEVAN';
7
8sub reset : method {
9 my ($attr, $reader, $writer) = @_;
10 return sub { $writer->($_[0], $attr->default($_[0])) };
11}
12
8e3fab6d 13sub inc {
457dc4fb 14 my ($attr, $reader, $writer) = @_;
15 return sub { $writer->($_[0], $reader->($_[0]) + 1) };
8e3fab6d 16}
17
18sub dec {
457dc4fb 19 my ($attr, $reader, $writer) = @_;
20 return sub { $writer->($_[0], $reader->($_[0]) - 1) };
8e3fab6d 21}
22
231;
24
25__END__
26
27=pod
28
5431dff2 29=head1 NAME
30
31MooseX::AttributeHelpers::MethodProvider::Counter
32
33=head1 DESCRIPTION
34
35This is a role which provides the method generators for
36L<MooseX::AttributeHelpers::Counter>.
37
38=head1 METHODS
39
40=over 4
41
42=item B<meta>
43
44=back
45
46=head1 PROVIDED METHODS
47
48=over 4
49
50=item B<inc>
51
52=item B<dec>
53
457dc4fb 54=item B<reset>
55
5431dff2 56=back
57
58=head1 BUGS
59
60All complex software has bugs lurking in it, and this module is no
61exception. If you find a bug please either email me, or add the bug
62to cpan-RT.
63
64=head1 AUTHOR
65
66Stevan Little E<lt>stevan@iinteractive.comE<gt>
67
68=head1 COPYRIGHT AND LICENSE
69
70Copyright 2007 by Infinity Interactive, Inc.
71
72L<http://www.iinteractive.com>
73
74This library is free software; you can redistribute it and/or modify
75it under the same terms as Perl itself.
76
77=cut