![]() |
![]()
| ![]() |
![]()
NAMEMouseX::AttributeHelpers - Extend your attribute interfacesSYNOPSISpackage 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; DESCRIPTIONMouseX::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. PARAMETERSprovidesThis 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.curriesThis 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 PROVIDERSCounterMethods for incrementing and decrementing a counter attribute.NumberCommon numerical operations.StringCommon methods for string values.BoolCommon methods for boolean values.Collection::ListCommon list methods for array references.Collection::ArrayCommon methods for array references.Collection::ImmutableHashCommon methods for hash references.Collection::HashCommon additional methods for hash references.Collection::BagMethods for incrementing and decrementing a value of collection.AUTHORNAKAGAWA Masaki <masaki@cpan.org>THANKS TO"AUTHOR" in MooseX::AttributeHelpersLICENSEThis library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.SEE ALSOMouseMouseX::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
|