NAME
   MouseX::AttributeHelpers - Extend your attribute interfaces

SYNOPSIS
       package MyClass;

       use Mouse;
       use MouseX::AttributeHelpers;

       has 'mapping' => (
           metaclass => 'Collection::Hash',
           is        => 'rw',
           isa       => 'HashRef',
           default   => sub { +{} },
           provides  => {
               exists => 'exists_in_mapping',
               keys   => 'ids_in_mapping',
               get    => 'get_mapping',
               set    => 'set_mapping',
           },
       );

       package main;

       my $obj = MyClass->new;
       $obj->set_quantity(10);      # quantity => 10
       $obj->set_mapping(4, 'foo'); # 4 => 'foo'
       $obj->set_mapping(5, 'bar'); # 5 => 'bar'
       $obj->set_mapping(6, 'baz'); # 6 => 'baz'

       # prints 'bar'
       print $obj->get_mapping(5) if $obj->exists_in_mapping(5);

       # prints '4, 5, 6'
       print join ', ', $obj->ids_in_mapping;

DESCRIPTION
   MouseX::AttributeHelpers provides commonly used attribute helper methods
   for more specific types of data.

   As seen in the "SYNOPSIS", you specify the extension via the "metaclass"
   parameter.

PARAMETERS
 provides
   This points to a hashref that uses "provider" for the keys and "method"
   for the values. The method will be added to the object itself and do
   what you want.

 curries
   This points to a hashref that uses "provider" for the keys and has two
   choices for the value:

   You can supply "{ method => \@args }" for the values. The method will be
   added to the object itself (always using @args as the beginning
   arguments).

   Another approach to curry a method provider is to supply a coderef
   instead of an arrayref. The code ref takes $self, $body, and any
   additional arguments passed to the final method.

METHOD PROVIDERS
 Counter
   Methods for incrementing and decrementing a counter attribute.

 Number
   Common numerical operations.

 String
   Common methods for string values.

 Bool
   Common methods for boolean values.

 Collection::List
   Common list methods for array references.

 Collection::Array
   Common methods for array references.

 Collection::ImmutableHash
   Common methods for hash references.

 Collection::Hash
   Common additional methods for hash references.

 Collection::Bag
   Methods for incrementing and decrementing a value of collection.

AUTHOR
   NAKAGAWA Masaki <[email protected]>

THANKS TO
   "AUTHOR" in MooseX::AttributeHelpers

LICENSE
   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

SEE ALSO
   Mouse

   MouseX::AttributeHelpers::Counter, MouseX::AttributeHelpers::Number,
   MouseX::AttributeHelpers::String, MouseX::AttributeHelpers::Bool,
   MouseX::AttributeHelpers::Collection::List,
   MouseX::AttributeHelpers::Collection::Array,
   MouseX::AttributeHelpers::Collection::ImmutableHash,
   MouseX::AttributeHelpers::Collection::Hash,
   MouseX::AttributeHelpers::Collection::Bag

   MooseX::AttributeHelpers