fix all examples to use handles; fix links to be to traits
Hans Dieter Pearcey [Fri, 26 Jun 2009 01:15:35 +0000 (18:15 -0700)]
18 files changed:
lib/Moose/AttributeHelpers.pm
lib/Moose/AttributeHelpers/Collection/Array.pm
lib/Moose/AttributeHelpers/Collection/Bag.pm
lib/Moose/AttributeHelpers/Collection/Hash.pm
lib/Moose/AttributeHelpers/Collection/ImmutableHash.pm
lib/Moose/AttributeHelpers/Collection/List.pm
lib/Moose/AttributeHelpers/MethodProvider/List.pm
lib/Moose/AttributeHelpers/Number.pm
lib/Moose/AttributeHelpers/String.pm
lib/Moose/AttributeHelpers/Trait/Bool.pm
lib/Moose/AttributeHelpers/Trait/Collection/Array.pm
lib/Moose/AttributeHelpers/Trait/Collection/Bag.pm
lib/Moose/AttributeHelpers/Trait/Collection/Hash.pm
lib/Moose/AttributeHelpers/Trait/Collection/ImmutableHash.pm
lib/Moose/AttributeHelpers/Trait/Collection/List.pm
lib/Moose/AttributeHelpers/Trait/Counter.pm
lib/Moose/AttributeHelpers/Trait/Number.pm
lib/Moose/AttributeHelpers/Trait/String.pm

index 82ce7b5..7bb7cf9 100644 (file)
@@ -80,77 +80,49 @@ readers, writers, clearers and predicates, this library provides commonly
 used attribute helper methods for more specific types of data.
 
 As seen in the L</SYNOPSIS>, you specify the extension via the
-C<metaclass> parameter. Available meta classes are:
+C<trait> parameter. Available meta classes are below; see L</METHOD PROVIDERS>.
 
 =head1 PARAMETERS
 
 =head2 handles
 
-This points to a hashref that uses C<method> for the keys and
-C<stuff> for the values.  The method will be added to
-the object itself and do what you want.
-
-=head2 curries
-
-This points to a hashref that uses C<provider> for the keys and
-has two choices for the value:
-
-You can supply C<< {method => [ @args ]} >> for the values.  The method will be
-added to the object itself (always using C<@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 C<$self>, C<$body>, and any additional arguments
-passed to the final method.
-
-  # ...
-
-  curries => {
-      grep => {
-          times_with_day => sub {
-              my ($self, $body, $datetime) = @_;
-              $body->($self, sub { $_->ymd eq $datetime->ymd });
-          }
-      }
-  }
-
-  # ...
-
-  $obj->times_with_day(DateTime->now); # takes datetime argument, checks day
-
+This is like C<< handles >> in L<Moose/has>, but only HASH references are
+allowed.  Keys are method names that you want installed locally, and values are
+methods from the method providers (below).  Currying with delegated methods works normally for C<< handles >>.
 
 =head1 METHOD PROVIDERS
 
 =over
 
-=item L<Number|Moose::AttributeHelpers::Number>
+=item L<Number|Moose::AttributeHelpers::Trait::Number>
 
 Common numerical operations.
 
-=item L<String|Moose::AttributeHelpers::String>
+=item L<String|Moose::AttributeHelpers::Trait::String>
 
 Common methods for string operations.
 
-=item L<Counter|Moose::AttributeHelpers::Counter>
+=item L<Counter|Moose::AttributeHelpers::Trait::Counter>
 
 Methods for incrementing and decrementing a counter attribute.
 
-=item L<Bool|Moose::AttributeHelpers::Bool>
+=item L<Bool|Moose::AttributeHelpers::Trait::Bool>
 
 Common methods for boolean values.
 
-=item L<Collection::Hash|Moose::AttributeHelpers::Collection::Hash>
+=item L<Collection::Hash|Moose::AttributeHelpers::Trait::Collection::Hash>
 
 Common methods for hash references.
 
-=item L<Collection::ImmutableHash|Moose::AttributeHelpers::Collection::ImmutableHash>
+=item L<Collection::ImmutableHash|Moose::AttributeHelpers::Trait::Collection::ImmutableHash>
 
 Common methods for inspecting hash references.
 
-=item L<Collection::Array|Moose::AttributeHelpers::Collection::Array>
+=item L<Collection::Array|Moose::AttributeHelpers::Trait::Collection::Array>
 
 Common methods for array references.
 
-=item L<Collection::List|Moose::AttributeHelpers::Collection::List>
+=item L<Collection::List|Moose::AttributeHelpers::Trait::Collection::List>
 
 Common list methods for array references.
 
index 29997e8..b700348 100644 (file)
@@ -38,9 +38,9 @@ Moose::AttributeHelpers::Collection::Array
       is        => 'ro',
       isa       => 'ArrayRef[Int]',
       default   => sub { [] },
-      provides  => {
-          'push' => 'add_options',
-          'pop'  => 'remove_last_option',
+      handles   => {
+          add_options        => 'push',
+          remove_last_option => 'pop',
       }
   );
 
index d0fb263..f510260 100644 (file)
@@ -36,12 +36,12 @@ Moose::AttributeHelpers::Collection::Bag
       metaclass => 'Collection::Bag',
       is        => 'ro',
       isa       => 'Bag', # optional ... as is defalt
-      provides  => {
-          'add'    => 'add_word',
-          'get'    => 'get_count_for',
-          'empty'  => 'has_any_words',
-          'count'  => 'num_words',
-          'delete' => 'delete_word',
+      handles   => {
+          add_word      => 'add',
+          get_count_for => 'get',
+          has_any_words => 'empty',
+          num_words     => 'count',
+          delete_word   => 'delete',
       }
   );
 
index 8230050..cf707bc 100644 (file)
@@ -38,12 +38,12 @@ Moose::AttributeHelpers::Collection::Hash
       is        => 'ro',
       isa       => 'HashRef[Str]',
       default   => sub { {} },
-      provides  => {
-          'set'    => 'set_option',
-          'get'    => 'get_option',
-          'empty'  => 'has_options',
-          'count'  => 'num_options',
-          'delete' => 'delete_option',
+      handles   => {
+          set_option    => 'set',
+          get_option    => 'get',
+          has_options   => 'empty',
+          num_options   => 'count',
+          delete_option => 'delete',
       }
   );
 
index 22fb5dd..56a7532 100644 (file)
@@ -38,10 +38,10 @@ Moose::AttributeHelpers::Collection::ImmutableHash
       is        => 'ro',
       isa       => 'HashRef[Str]',
       default   => sub { {} },
-      provides  => {
-          'get'    => 'get_option',
-          'empty'  => 'has_options',
-          'keys'   => 'get_option_list',
+      handles   => {
+          get_option      => 'get',
+          has_options     => 'empty',
+          get_option_list => 'keys',
       }
   );
 
index ef17502..53b3ca6 100644 (file)
@@ -38,9 +38,9 @@ Moose::AttributeHelpers::Collection::List
       is        => 'ro',
       isa       => 'ArrayRef[Int]',
       default   => sub { [] },
-      provides  => {
-          map  => 'map_options',
-          grep => 'filter_options',
+      handles   => {
+          map_options    => 'map',
+          filter_options => 'grep',
       }
   );
 
index 6e011c6..c1d425c 100644 (file)
@@ -121,18 +121,18 @@ Moose::AttributeHelpers::MethodProvider::List
        isa        => 'ArrayRef[Str]',
        default    => sub { [] },
        auto_deref => 1,
-       provides   => {
-           elements => 'all_options',
-           map      => 'map_options',
-           grep     => 'filter_options',
-           find     => 'find_option',
-           first    => 'first_option',
-           last     => 'last_option',
-           get      => 'get_option',
-           join     => 'join_options',
-           count    => 'count_options',
-           empty    => 'do_i_have_options',
-           sort     => 'sorted_options',
+       handles   => {
+           all_options       => 'elements',
+           map_options       => 'map',
+           filter_options    => 'grep',
+           find_option       => 'find',
+           first_option      => 'first',
+           last_option       => 'last',
+           get_option        => 'get',
+           join_options      => 'join',
+           count_options     => 'count',
+           do_i_have_options => 'empty',
+           sorted_options    => 'sort',
        }
    );
 
index 04225db..0205760 100644 (file)
@@ -34,7 +34,7 @@ Moose::AttributeHelpers::Number
       is        => 'ro',
       isa       => 'Int',
       default   => sub { 5 },
-      provides  => {
+      handles   => {
           set => 'set',
           add => 'add',
           sub => 'sub',
index 7564f43..f36a20a 100644 (file)
@@ -37,9 +37,9 @@ Moose::AttributeHelpers::String
       is        => 'rw',
       isa       => 'Str',
       default   => sub { '' },
-      provides  => {
-          append => "add_text",
-          replace => "replace_text",
+      handles  => {
+          "add_text"     => "append",
+          "replace_text" => "replace",
       }
   );
 
@@ -53,10 +53,10 @@ operations can be applied more easily (no need to make an lvalue attribute
 metaclass or use temporary variables). Additional methods are provided for
 completion.
 
-If your attribute definition does not include any of I<is>, I<isa>,
-I<default> or I<provides> but does use the C<String> metaclass,
-then this module applies defaults as in the L</SYNOPSIS>
-above. This allows for a very basic counter definition:
+If your attribute definition does not include any of I<is>, I<isa>, I<default>
+or I<handles> but does use the C<String> metaclass, then this module applies
+defaults as in the L</SYNOPSIS> above. This allows for a very basic counter
+definition:
 
   has 'foo' => (metaclass => 'String');
   $obj->append_foo;
index f3da980..b41d734 100644 (file)
@@ -58,11 +58,11 @@ Moose::AttributeHelpers::Bool
       is        => 'rw',
       isa       => 'Bool',
       default   => sub { 0 },
-      provides  => {
-          set     => 'illuminate',
-          unset   => 'darken',
-          toggle  => 'flip_switch',
-          not     => 'is_dark'
+      handles   => {
+          illuminate  => 'set',
+          darken      => 'unset',
+          flip_switch => 'toggle',
+          is_dark     => 'not',
       }
   );
 
index d59c991..53e36c6 100644 (file)
@@ -50,9 +50,9 @@ Moose::AttributeHelpers::Collection::Array
       is        => 'ro',
       isa       => 'ArrayRef[Int]',
       default   => sub { [] },
-      provides  => {
-          'push' => 'add_options',
-          'pop'  => 'remove_last_option',
+      handles   => {
+          add_options        => 'push',
+          remove_last_option => 'pop',
       }
   );
 
index d0f4d4d..5fb342b 100644 (file)
@@ -63,12 +63,12 @@ Moose::AttributeHelpers::Collection::Bag
       metaclass => 'Collection::Bag',
       is        => 'ro',
       isa       => 'Bag', # optional ... as is defalt
-      provides  => {
-          'add'    => 'add_word',
-          'get'    => 'get_count_for',
-          'empty'  => 'has_any_words',
-          'count'  => 'num_words',
-          'delete' => 'delete_word',
+      handles   => {
+          add_word      => 'add',
+          get_count_for => 'get',
+          has_any_words => 'empty',
+          num_words     => 'count',
+          delete_word   => 'delete',
       }
   );
 
index 710aad2..b0d7c2b 100644 (file)
@@ -50,12 +50,12 @@ Moose::AttributeHelpers::Collection::Hash
       is        => 'ro',
       isa       => 'HashRef[Str]',
       default   => sub { {} },
-      provides  => {
-          'set'    => 'set_option',
-          'get'    => 'get_option',
-          'empty'  => 'has_options',
-          'count'  => 'num_options',
-          'delete' => 'delete_option',
+      handles   => {
+          set_option    => 'set',
+          get_option    => 'get',
+          has_options   => 'empty',
+          num_options   => 'count',
+          delete_option => 'delete',
       }
   );
 
index a1f9a02..c12a4bb 100644 (file)
@@ -50,10 +50,10 @@ Moose::AttributeHelpers::Collection::ImmutableHash
       is        => 'ro',
       isa       => 'HashRef[Str]',
       default   => sub { {} },
-      provides  => {
-          'get'    => 'get_option',
-          'empty'  => 'has_options',
-          'keys'   => 'get_option_list',
+      handles  => {
+          get_option      => 'get',
+          has_options     => 'empty',
+          get_option_list => 'keys',
       }
   );
 
index 68566e0..1f1a309 100644 (file)
@@ -50,9 +50,9 @@ Moose::AttributeHelpers::Collection::List
       is        => 'ro',
       isa       => 'ArrayRef[Int]',
       default   => sub { [] },
-      provides  => {
-          map  => 'map_options',
-          grep => 'filter_options',
+      handles   => {
+          map_options    => 'map',
+          filter_options => 'grep',
       }
   );
 
index bf14486..2cbb835 100644 (file)
@@ -75,10 +75,10 @@ Moose::AttributeHelpers::Counter
       is        => 'ro',
       isa       => 'Num',
       default   => sub { 0 },
-      provides  => {
-          inc => 'inc_counter',
-          dec => 'dec_counter',
-          reset => 'reset_counter',
+      handles   => {
+          inc_counter   => 'inc',
+          dec_counter   => 'dec',
+          reset_counter => 'reset',
       }
   );
 
@@ -92,7 +92,7 @@ This module provides a simple counter attribute, which can be
 incremented and decremented.
 
 If your attribute definition does not include any of I<is>, I<isa>,
-I<default> or I<provides> but does use the C<Counter> metaclass,
+I<default> or I<handles> but does use the C<Counter> metaclass,
 then this module applies defaults as in the L</SYNOPSIS>
 above. This allows for a very basic counter definition:
 
index df2662c..8e666ad 100644 (file)
@@ -79,7 +79,7 @@ Moose::AttributeHelpers::Number
       is        => 'ro',
       isa       => 'Int',
       default   => sub { 5 },
-      provides  => {
+      handles  => {
           set => 'set',
           add => 'add',
           sub => 'sub',
index 36af4c7..1e62902 100644 (file)
@@ -73,9 +73,9 @@ Moose::AttributeHelpers::String
       is        => 'rw',
       isa       => 'Str',
       default   => sub { '' },
-      provides  => {
-          append => "add_text",
-          replace => "replace_text",
+      handles  => {
+          add_text     => 'append',
+          replace_text => 'replace',
       }
   );
 
@@ -90,7 +90,7 @@ metaclass or use temporary variables). Additional methods are provided for
 completion.
 
 If your attribute definition does not include any of I<is>, I<isa>,
-I<default> or I<provides> but does use the C<String> metaclass,
+I<default> or I<handles> but does use the C<String> metaclass,
 then this module applies defaults as in the L</SYNOPSIS>
 above. This allows for a very basic counter definition: