MooseX::AttributeHelpers::MethodProvider::Counter - MooseX::AttributeHelpers::MethodProvider::Counter documentation


MooseX-AttributeHelpers documentation Contained in the MooseX-AttributeHelpers distribution.

Index


Code Index:

NAME

Top

MooseX::AttributeHelpers::MethodProvider::Counter

DESCRIPTION

Top

This is a role which provides the method generators for MooseX::AttributeHelpers::Counter.

METHODS

Top

meta

PROVIDED METHODS

Top

set
inc
dec
reset

BUGS

Top

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.

AUTHOR

Top

Stevan Little <stevan@iinteractive.com>

COPYRIGHT AND LICENSE

Top


MooseX-AttributeHelpers documentation Contained in the MooseX-AttributeHelpers distribution.

package MooseX::AttributeHelpers::MethodProvider::Counter;
use Moose::Role;

our $VERSION   = '0.23';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';

sub reset : method {
    my ($attr, $reader, $writer) = @_;
    return sub { $writer->($_[0], $attr->default($_[0])) };
}

sub set : method {
    my ($attr, $reader, $writer, $value) = @_;
    return sub { $writer->($_[0], $_[1]) };
}

sub inc {
    my ($attr, $reader, $writer) = @_;
    return sub { $writer->($_[0], $reader->($_[0]) + (defined($_[1]) ? $_[1] : 1) ) };
}

sub dec {
    my ($attr, $reader, $writer) = @_;
    return sub { $writer->($_[0], $reader->($_[0]) - (defined($_[1]) ? $_[1] : 1) ) };
}

1;

__END__