bump version to 0.93_03
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / String.pm
index a455093..18fa75a 100644 (file)
@@ -1,7 +1,7 @@
 package Moose::Meta::Attribute::Native::Trait::String;
 use Moose::Role;
 
-our $VERSION   = '0.87';
+our $VERSION   = '0.93_03';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -20,20 +20,6 @@ sub _default_default { q{} }
 sub _default_is { 'rw' }
 sub _helper_type { 'Str' }
 
-after '_check_handles_values' => sub {
-    my $self    = shift;
-    my $handles = $self->handles;
-
-    unless ( scalar keys %$handles ) {
-        my $method_constructors = $self->method_constructors;
-        my $attr_name           = $self->name;
-
-        foreach my $method ( keys %$method_constructors ) {
-            $handles->{$method} = ( $method . '_' . $attr_name );
-        }
-    }
-};
-
 no Moose::Role;
 
 1;
@@ -44,7 +30,7 @@ __END__
 
 =head1 NAME
 
-Moose::Meta::Attribute::Native::Trait::String
+Moose::Meta::Attribute::Native::Trait::String - Helper trait for Str attributes
 
 =head1 SYNOPSIS
 
@@ -52,14 +38,14 @@ Moose::Meta::Attribute::Native::Trait::String
   use Moose;
 
   has 'text' => (
-      metaclass => 'String',
+      traits    => ['String'],
       is        => 'rw',
       isa       => 'Str',
       default   => q{},
-      handles  => {
+      handles   => {
           add_text     => 'append',
           replace_text => 'replace',
-      }
+      },
   );
 
   my $page = MyHomePage->new();
@@ -75,57 +61,66 @@ completion.
 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:
+above. This allows for a very basic string definition:
 
-  has 'foo' => (metaclass => 'String');
+  has 'foo' => (traits => ['String']);
   $obj->append_foo;
 
 =head1 PROVIDED METHODS
 
 These methods are implemented in
-L<Moose::Meta::Attribute::Native::MethodProvider::STring>. It is important to
+L<Moose::Meta::Attribute::Native::MethodProvider::String>. It is important to
 note that all those methods do in place modification of the value stored in
 the attribute.
 
 =over 4
 
-=item I<inc>
+=item B<inc>
 
 Increments the value stored in this slot using the magical string autoincrement
 operator. Note that Perl doesn't provide analogous behavior in C<-->, so
 C<dec> is not available.
 
-=item I<append> C<$string>
+=item B<append($string)>
 
 Append a string, like C<.=>.
 
-=item I<prepend> C<$string>
+=item B<prepend($string)>
 
 Prepend a string.
 
-=item I<replace> C<$pattern> C<$replacement>
+=item B<replace($pattern, $replacement)>
 
 Performs a regexp substitution (L<perlop/s>). There is no way to provide the
 C<g> flag, but code references will be accepted for the replacement, causing
 the regex to be modified with a single C<e>. C</smxi> can be applied using the
 C<qr> operator.
 
-=item I<match> C<$pattern>
+=item B<match($pattern)>
 
-Like I<replace> but without the replacement. Provided mostly for completeness.
+Like C<replace> but without the replacement. Provided mostly for completeness.
 
-=item C<chop>
+=item B<chop>
 
 L<perlfunc/chop>
 
-=item C<chomp>
+=item B<chomp>
 
 L<perlfunc/chomp>
 
-=item C<clear>
+=item B<clear>
 
 Sets the string to the empty string (not the value passed to C<default>).
 
+=item B<length>
+
+L<perlfunc/length>
+
+=item B<substr>
+
+L<perlfunc/substr>. We go to some lengths to match the different functionality
+based on C<substr>'s arity.
+
 =back
 
 =head1 METHODS
@@ -142,9 +137,7 @@ Sets the string to the empty string (not the value passed to C<default>).
 
 =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