X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FAttribute%2FNative%2FTrait%2FString.pm;h=74d842365b456ec191572b6aef0251894fb6a665;hb=60f0816092ffe11986388dd2bba56a356b697843;hp=111dc5307c4f243b0a602188f5b64a4ef5b6bf03;hpb=122a129ac1b02a53a4ac31f848a9bc89ce8feacf;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 111dc53..74d8423 100644 --- a/lib/Moose/Meta/Attribute/Native/Trait/String.pm +++ b/lib/Moose/Meta/Attribute/Native/Trait/String.pm @@ -1,7 +1,7 @@ package Moose::Meta::Attribute::Native::Trait::String; use Moose::Role; -our $VERSION = '0.89'; +our $VERSION = '1.09'; $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, 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 PROVIDED METHODS These methods are implemented in -L. It is important to +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 @@ -142,9 +137,7 @@ Sets the string to the empty string (not the value passed to C). =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