X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FAttribute%2FNative%2FTrait%2FString.pm;h=7b8b0ba0ed3a0cabaa277412c3504f68cf1cb617;hb=72643035d73124e0b4ef7a8335cdc4f793732b5a;hp=47f1f8ca4545efc728e0a35c344fe45c617efb53;hpb=c466e58f62cf93887b29809993bd7830c8350079;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Attribute/Native/Trait/String.pm b/lib/Moose/Meta/Attribute/Native/Trait/String.pm index 47f1f8c..7b8b0ba 100644 --- a/lib/Moose/Meta/Attribute/Native/Trait/String.pm +++ b/lib/Moose/Meta/Attribute/Native/Trait/String.pm @@ -1,8 +1,7 @@ - package Moose::Meta::Attribute::Native::Trait::String; use Moose::Role; -our $VERSION = '0.87'; +our $VERSION = '1.08'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -21,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; @@ -45,23 +30,22 @@ __END__ =head1 NAME -Moose::Meta::Attribute::Native::Trait::String +Moose::Meta::Attribute::Native::Trait::String - Helper trait for Str attributes =head1 SYNOPSIS package MyHomePage; use Moose; - use Moose::AttributeHelpers; has 'text' => ( - metaclass => 'String', + traits => ['String'], is => 'rw', isa => 'Str', default => q{}, - handles => { + handles => { add_text => 'append', replace_text => 'replace', - } + }, ); my $page = MyHomePage->new(); @@ -77,74 +61,83 @@ completion. If your attribute definition does not include any of I, I, I or I but does use the C metaclass, then this module applies defaults as in the L -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 METHODS - -=over 4 - -=item B - -=item B - -=item B - -=back - =head1 PROVIDED METHODS -It is important to note that all those methods do in place -modification of the value stored in the attribute. +These methods are implemented in +L. It is important to +note that all those methods do in place modification of the value stored in +the attribute. =over 4 -=item I +=item B 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 is not available. -=item I C<$string> +=item B Append a string, like C<.=>. -=item I C<$string> +=item B Prepend a string. -=item I C<$pattern> C<$replacement> +=item B Performs a regexp substitution (L). There is no way to provide the C flag, but code references will be accepted for the replacement, causing the regex to be modified with a single C. C can be applied using the C operator. -=item I C<$pattern> +=item B -Like I but without the replacement. Provided mostly for completeness. +Like C but without the replacement. Provided mostly for completeness. -=item C +=item B L -=item C +=item B L -=item C +=item B Sets the string to the empty string (not the value passed to C). +=item B + +L + +=item B + +L. We go to some lengths to match the different functionality +based on C's arity. + +=back + +=head1 METHODS + +=over 4 + +=item B + +=item B + +=item B + =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 for details on reporting bugs. =head1 AUTHOR