lazily load the native trait accessor roles
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / Hash.pm
index ff22576..775b735 100644 (file)
@@ -2,21 +2,12 @@
 package Moose::Meta::Attribute::Native::Trait::Hash;
 use Moose::Role;
 
-our $VERSION   = '0.91';
+our $VERSION   = '1.19';
 $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;
@@ -47,53 +38,66 @@ 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 array 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.
@@ -102,28 +106,42 @@ Returns the key/value pairs in the hash as an array of array references.
       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: 
 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.
+
 =back
 
 =head1 METHODS
@@ -132,17 +150,11 @@ arguments, sets the value of the specified key.
 
 =item B<meta>
 
-=item B<method_provider>
-
-=item B<has_method_provider>
-
 =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.
+See L<Moose/BUGS> for details on reporting bugs.
 
 =head1 AUTHOR