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