X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FAttributeHelpers%2FMethodProvider%2FCounter.pm;fp=lib%2FMooseX%2FAttributeHelpers%2FMethodProvider%2FCounter.pm;h=a90edb9dee2092145652a9be7f764f90d33a8dc6;hb=786dbc3d10c2609d567097725efcbbc833e82f4b;hp=2dce27ca5c0b5fc2bd2e797ecfc92a8587e07fb5;hpb=e993b282cf63b60c6c52987cd9f6ac93a27eba22;p=gitmo%2FMooseX-AttributeHelpers.git diff --git a/lib/MooseX/AttributeHelpers/MethodProvider/Counter.pm b/lib/MooseX/AttributeHelpers/MethodProvider/Counter.pm index 2dce27c..a90edb9 100644 --- a/lib/MooseX/AttributeHelpers/MethodProvider/Counter.pm +++ b/lib/MooseX/AttributeHelpers/MethodProvider/Counter.pm @@ -1,24 +1,28 @@ - package MooseX::AttributeHelpers::MethodProvider::Counter; -use Moose::Role; +use MooseX::AttributeHelpers::MethodProvider; our $VERSION = '0.02'; our $AUTHORITY = 'cpan:STEVAN'; -sub reset : method { - my ($attr, $reader, $writer) = @_; - return sub { $writer->($_[0], $attr->default($_[0])) }; -} - -sub inc { - my ($attr, $reader, $writer) = @_; - return sub { $writer->($_[0], $reader->($_[0]) + 1) }; -} - -sub dec { - my ($attr, $reader, $writer) = @_; - return sub { $writer->($_[0], $reader->($_[0]) - 1) }; -} +add_method_provider 'Counter' => ( + type => 'Int', + provides => { + reset => sub { + my ($attr, $reader, $writer) = @_; + return sub { $writer->($_[0], $attr->default($_[0])) }; + }, + + inc => sub { + my ($attr, $reader, $writer) = @_; + return sub { $writer->($_[0], $reader->($_[0]) + 1) }; + }, + + dec => sub { + my ($attr, $reader, $writer) = @_; + return sub { $writer->($_[0], $reader->($_[0]) - 1) }; + }, + }, +); 1; @@ -29,10 +33,10 @@ __END__ =head1 NAME MooseX::AttributeHelpers::MethodProvider::Counter - + =head1 DESCRIPTION -This is a role which provides the method generators for +This is a role which provides the method generators for L. =head1 PROVIDED METHODS @@ -55,7 +59,7 @@ Resets the value stored in this slot to its default value. =head1 BUGS -All complex software has bugs lurking in it, and this module is no +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.