X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FString%2Fchop.pm;h=cb3ed8cd5000785d04629b676bf8d9f794b3b26e;hb=00bbc132f9e1cb2b1a44aa287887cafa27a84577;hp=b6a9a2489d0d457690d2afd9359a841c7a67e785;hpb=e7724627674e5f80d9318fb39cf8976fbe2f837b;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/String/chop.pm b/lib/Moose/Meta/Method/Accessor/Native/String/chop.pm index b6a9a24..cb3ed8c 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/String/chop.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/String/chop.pm @@ -3,30 +3,37 @@ package Moose::Meta::Method::Accessor::Native::String::chop; use strict; use warnings; -our $VERSION = '1.13'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; +use Moose::Role; -use base 'Moose::Meta::Method::Accessor::Native::String::Writer'; +with 'Moose::Meta::Method::Accessor::Native::Writer'; -sub _minimum_arguments { 0 } sub _maximum_arguments { 0 } sub _potential_value { - my ( $self, $slot_access ) = @_; - - return "( do { my \$val = $slot_access; chop \$val; \$val } )"; + my $self = shift; + my ($slot_access) = @_; + + return '(do { ' + . 'my $val = ' . $slot_access . '; ' + . '@return = chop $val; ' + . '$val; ' + . '})'; } -sub _inline_set_new_value { - my ( $self, $inv, $new ) = @_; +sub _inline_optimized_set_new_value { + my $self = shift; + my ($inv, $new, $slot_access) = @_; - return $self->SUPER::_inline_set_new_value(@_) - if $self->_value_needs_copy; + return '@return = chop ' . $slot_access . ';'; +} - my $slot_access = $self->_inline_get($inv); +sub _return_value { + my $self = shift; + my ($slot_access) = @_; - return "chop ${slot_access}"; + return '$return[0]'; } +no Moose::Role; + 1;