X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FAttribute%2FNative%2FTrait%2FHash.pm;h=6d846729b804abbc4c0635d37ed69eabf1be0f05;hb=ee05962b4ec91f86a0dc19ceddb869ca4e609a67;hp=c23041dafb7ef1bfe9b6286087ffadedd08b88ee;hpb=8396a4370e597ac3aa4ce4f2bedfa2539887bb6b;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Attribute/Native/Trait/Hash.pm b/lib/Moose/Meta/Attribute/Native/Trait/Hash.pm index c23041d..6d84672 100644 --- a/lib/Moose/Meta/Attribute/Native/Trait/Hash.pm +++ b/lib/Moose/Meta/Attribute/Native/Trait/Hash.pm @@ -2,35 +2,20 @@ package Moose::Meta::Attribute::Native::Trait::Hash; use Moose::Role; -our $VERSION = '0.89'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; - -use Moose::Meta::Attribute::Native::MethodProvider::Hash; - with 'Moose::Meta::Attribute::Native::Trait'; -has 'method_provider' => ( - is => 'ro', - isa => 'ClassName', - predicate => 'has_method_provider', - default => 'Moose::Meta::Attribute::Native::MethodProvider::Hash' -); - sub _helper_type { 'HashRef' } no Moose::Role; 1; +# ABSTRACT: Helper trait for HashRef attributes + __END__ =pod -=head1 NAME - -Moose::Meta::Attribute::Native::Trait::Hash - =head1 SYNOPSIS package Stuff; @@ -44,113 +29,135 @@ Moose::Meta::Attribute::Native::Trait::Hash handles => { set_option => 'set', get_option => 'get', - has_no_options => 'empty', + has_no_options => 'is_empty', num_options => 'count', delete_option => 'delete', - pairs => 'kv', - } + option_pairs => 'kv', + }, ); =head1 DESCRIPTION -This module provides a Hash attribute which provides a number of -hash-like operations. +This trait provides native delegation methods for hash references. =head1 PROVIDED METHODS -These methods are implemented in -L. - =over 4 -=item B +=item B + +Returns values from the hash. + +In list context it returns a list of values in the hash for the given keys. In +scalar context it returns the value for the last key specified. -Returns an element of the hash by its key. +This method requires at least one argument. -=item B +=item B $value, $key2 =E $value2...)> -Sets the element in the hash at the given key to the given value. +Sets the elements in the hash to the given values. It returns the new values +set for each key, in the same order as the keys passed to the method. -=item B +This method requires at least two arguments, and expects an even number of +arguments. -Removes the element with the given key. +=item B + +Removes the elements with the given keys. + +In list context it returns a list of values in the hash for the deleted +keys. In scalar context it returns the value for the last key specified. =item B Returns the list of keys in the hash. +This method does not accept any arguments. + =item B Returns true if the given key is present in the hash. +This method requires a single argument. + =item B Returns true if the value of a given key is defined. +This method requires a single argument. + =item B Returns the list of values in the hash. +This method does not accept any arguments. + =item B Returns the key/value pairs in the hash as an array of array references. - for my $pair ( $object->options->pairs ) { + for my $pair ( $object->option_pairs ) { print "$pair->[0] = $pair->[1]\n"; } +This method does not accept any arguments. + =item B Returns the key/value pairs in the hash as a flattened list.. +This method does not accept any arguments. + =item B Resets the hash to an empty value, like C<%hash = ()>. +This method does not accept any arguments. + =item B -Returns the number of elements in the hash. +Returns the number of elements in the hash. Also useful for not empty: +C<< has_options => 'count' >>. + +This method does not accept any arguments. -=item B +=item B If the hash is populated, returns false. Otherwise, returns true. -=item B +This method does not accept any arguments. + +=item B + +=item B If passed one argument, returns the value of the specified key. If passed two arguments, sets the value of the specified key. +When called as a setter, this method returns the value that was set. + +=item B + +This method returns a shallow clone of the hash reference. The return value +is a reference to a new hash with the same keys and values. It is I +because any values that were references in the original will be the I +references in the clone. + =back +Note that C is deliberately omitted, due to its stateful interaction +with the hash iterator. C or C are much safer. + =head1 METHODS =over 4 =item B -=item B - -=item B - =back =head1 BUGS -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. - -=head1 AUTHOR - -Stevan Little Estevan@iinteractive.comE - -=head1 COPYRIGHT AND LICENSE - -Copyright 2007-2009 by Infinity Interactive, Inc. - -L - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +See L for details on reporting bugs. =cut