Version 1.05
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / Hash.pm
index 48576fb..d524366 100644 (file)
@@ -2,7 +2,7 @@
 package Moose::Meta::Attribute::Native::Trait::Hash;
 use Moose::Role;
 
-our $VERSION   = '0.87';
+our $VERSION   = '1.05';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -29,13 +29,12 @@ __END__
 
 =head1 NAME
 
-Moose::Meta::Attribute::Native::Trait::Hash
+Moose::Meta::Attribute::Native::Trait::Hash - Helper trait for HashRef attributes
 
 =head1 SYNOPSIS
 
   package Stuff;
   use Moose;
-  use Moose::AttributeHelpers;
 
   has 'options' => (
       traits    => ['Hash'],
@@ -43,18 +42,19 @@ Moose::Meta::Attribute::Native::Trait::Hash
       isa       => 'HashRef[Str]',
       default   => sub { {} },
       handles   => {
-          set_option    => 'set',
-          get_option    => 'get',
-          has_options   => 'empty',
-          num_options   => 'count',
-          delete_option => 'delete',
-      }
+          set_option     => 'set',
+          get_option     => 'get',
+          has_no_options => 'is_empty',
+          num_options    => 'count',
+          delete_option  => 'delete',
+          pairs          => 'kv',
+      },
   );
 
 =head1 DESCRIPTION
 
 This module provides a Hash attribute which provides a number of
-hash-like operations. 
+hash-like operations.
 
 =head1 PROVIDED METHODS
 
@@ -63,29 +63,32 @@ L<Moose::Meta::Attribute::Native::MethodProvider::Hash>.
 
 =over 4
 
-=item B<count>
+=item B<get($key, $key2, $key3...)>
 
-Returns the number of elements in the list.
+Returns values from the hash.
 
-=item B<empty>
+In list context return a list of values in the hash for the given keys.
+In scalar context returns the value for the last key specified.
 
-If the list is populated, returns true. Otherwise, returns false.
+=item B<set($key =E<gt> $value, $key2 =E<gt> $value2...)>
 
-=item B<exists>
+Sets the elements in the hash to the given values.
 
-Returns true if the given key is present in the hash
+=item B<delete($key, $key2, $key3...)>
 
-=item B<defined>
+Removes the elements with the given keys.
 
-Returns true if the value of a given key is defined
+=item B<keys>
 
-=item B<get>
+Returns the list of keys in the hash.
 
-Returns an element of the hash by its key.
+=item B<exists($key)>
 
-=item B<keys>
+Returns true if the given key is present in the hash.
 
-Returns the list of keys in the hash.
+=item B<defined($key)>
+
+Returns true if the value of a given key is defined.
 
 =item B<values>
 
@@ -93,28 +96,33 @@ Returns the list of values in the hash.
 
 =item B<kv>
 
-Returns the key, value pairs in the hash as array references
+Returns the key/value pairs in the hash as an array of array references.
+
+  for my $pair ( $object->options->pairs ) {
+      print "$pair->[0] = $pair->[1]\n";
+  }
 
 =item B<elements>
 
-Returns the key, value pairs in the hash as a flattened list
+Returns the key/value pairs in the hash as a flattened list..
 
-=item B<delete>
+=item B<clear>
 
-Removes the element with the given key
+Resets the hash to an empty value, like C<%hash = ()>.
 
-=item B<clear>
+=item B<count>
 
-Unsets the hash entirely.
+Returns the number of elements in the hash. Also useful for not empty: 
+C<< has_options => 'count' >>.
 
-=item B<set>
+=item B<is_empty>
 
-Sets the element in the hash at the given key to the given value.
+If the hash is populated, returns false. Otherwise, returns true.
 
 =item B<accessor>
 
-If passed one argument, returns the value of the requested key. If passed two
-arguments, sets the value of the requested key.
+If passed one argument, returns the value of the specified key. If passed two
+arguments, sets the value of the specified key.
 
 =back
 
@@ -132,9 +140,7 @@ arguments, sets the value of the requested key.
 
 =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.
+See L<Moose/BUGS> for details on reporting bugs.
 
 =head1 AUTHOR