Remove all trailing whitespace
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / Hash.pm
index 9e6a2c3..34b2998 100644 (file)
@@ -2,35 +2,20 @@
 package Moose::Meta::Attribute::Native::Trait::Hash;
 use Moose::Role;
 
-our $VERSION   = '1.04';
-$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 - Helper trait for HashRef attributes
-
 =head1 SYNOPSIS
 
   package Stuff;
@@ -47,112 +32,132 @@ Moose::Meta::Attribute::Native::Trait::Hash - Helper trait for HashRef attribute
           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<Moose::Meta::Attribute::Native::MethodProvider::Hash>.
-
 =over 4
 
 =item B<get($key, $key2, $key3...)>
 
 Returns values from the hash.
 
-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.
+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.
+
+This method requires at least one argument.
 
 =item B<set($key =E<gt> $value, $key2 =E<gt> $value2...)>
 
-Sets the elements in the hash to the given values.
+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.
+
+This method requires at least two arguments, and expects an even number of
+arguments.
 
 =item B<delete($key, $key2, $key3...)>
 
 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<keys>
 
 Returns the list of keys in the hash.
 
+This method does not accept any arguments.
+
 =item B<exists($key)>
 
 Returns true if the given key is present in the hash.
 
+This method requires a single argument.
+
 =item B<defined($key)>
 
 Returns true if the value of a given key is defined.
 
+This method requires a single argument.
+
 =item B<values>
 
 Returns the list of values in the hash.
 
+This method does not accept any arguments.
+
 =item B<kv>
 
 Returns the key/value pairs in the hash as an array of array references.
 
-  for my $pair ( $object->options->pairs ) {
+  for my $pair ( $object->options->kv ) {
       print "$pair->[0] = $pair->[1]\n";
   }
 
+This method does not accept any arguments.
+
 =item B<elements>
 
 Returns the key/value pairs in the hash as a flattened list..
 
+This method does not accept any arguments.
+
 =item B<clear>
 
 Resets the hash to an empty value, like C<%hash = ()>.
 
+This method does not accept any arguments.
+
 =item B<count>
 
-Returns the number of elements in the hash. Also useful for not empty: 
+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<is_empty>
 
 If the hash is populated, returns false. Otherwise, returns true.
 
-=item B<accessor>
+This method does not accept any arguments.
+
+=item B<accessor($key)>
+
+=item B<accessor($key, $value)>
 
 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<shallow_clone>
+
+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<shallow>
+because any values that were references in the original will be the I<same>
+references in the clone.
+
 =back
 
+Note that C<each> is deliberately omitted, due to its stateful interaction
+with the hash iterator. C<keys> or C<kv> are much safer.
+
 =head1 METHODS
 
 =over 4
 
 =item B<meta>
 
-=item B<method_provider>
-
-=item B<has_method_provider>
-
 =back
 
 =head1 BUGS
 
 See L<Moose/BUGS> for details on reporting bugs.
 
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2007-2009 by Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
 =cut