package MooseX::AttributeHelpers::Counter;
use Moose;
-use Moose::Util::TypeConstraints;
our $VERSION = '0.01';
our $AUTHORITY = 'cpan:STEVAN';
extends 'MooseX::AttributeHelpers::Base';
+sub helper_type { 'Num' }
+
has '+method_constructors' => (
default => sub {
return +{
}
}
);
-
-sub _process_options_for_provides {
- my ($self, $options) = @_;
- (exists $options->{isa})
- || confess "You must define a type with the Counter metaclass";
-
- my $isa = $options->{isa};
-
- unless (blessed($isa) && $isa->isa('Moose::Meta::TypeConstraint')) {
- $isa = find_type_constraint($isa);
- }
-
- ($isa->is_a_type_of('Num'))
- || confess "The type constraint for a Counter ($options->{isa}) must be a subtype of Num";
-}
no Moose;
-no Moose::Util::TypeConstraints;
# register the alias ...
package Moose::Meta::Attribute::Custom::Counter;
default => sub { 0 },
provides => {
inc => 'inc_counter',
+ dec => 'dec_counter',
}
);
my $page = MyHomePage->new();
$page->inc_counter; # same as $page->counter($page->counter + 1);
+ $page->dec_counter; # same as $page->counter($page->counter - 1);
=head1 DESCRIPTION