Composite now implemented.
[gitmo/MooseX-AttributeHelpers.git] / lib / MooseX / AttributeHelpers / MethodProvider / Counter.pm
index 2dce27c..a90edb9 100644 (file)
@@ -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<MooseX::AttributeHelpers::Counter>.
 
 =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.