NAKAGAWA Masaki > MouseX-AttributeHelpers-0.03 > MouseX::AttributeHelpers

Download:
MouseX-AttributeHelpers-0.03.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.03   Source   Latest Release: MouseX-AttributeHelpers-0.04

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 <masaki@cpan.org>

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 ^

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