X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FArray%2Fjoin.pm;h=9010aaa3815e83991d11a5090534321cbb24b8d0;hb=d5f6cadef8d83deaf7dd95302908cd4f61aeab8a;hp=feea365fc7bb92cb88b2d39054c96a4c85a965af;hpb=10bd99ecf3f1706d4452fa57e3f08a63b9f92a11;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/Array/join.pm b/lib/Moose/Meta/Method/Accessor/Native/Array/join.pm index feea365..9010aaa 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/Array/join.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/Array/join.pm @@ -3,11 +3,19 @@ package Moose::Meta::Method::Accessor::Native::Array::join; use strict; use warnings; -our $VERSION = '1.14'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; +use Moose::Util (); -use base 'Moose::Meta::Method::Accessor::Native::Reader'; +use Moose::Role; + +with 'Moose::Meta::Method::Accessor::Native::Reader' => { + -excludes => [ + qw( + _minimum_arguments + _maximum_arguments + _inline_check_arguments + ) + ] +}; sub _minimum_arguments { 1 } @@ -16,16 +24,22 @@ sub _maximum_arguments { 1 } sub _inline_check_arguments { my $self = shift; - return $self->_inline_throw_error( - q{'The argument passed to join must be a string'}) - . ' unless defined $_[0] && ! ref $_[0];'; + return ( + 'if (!Moose::Util::_STRINGLIKE0($_[0])) {', + $self->_inline_throw_error( + '"The argument passed to join must be a string"', + ) . ';', + '}', + ); } sub _return_value { - my $self = shift; - my $slot_access = shift; + my $self = shift; + my ($slot_access) = @_; - return "join \$_[0], \@{ $slot_access }"; + return 'join $_[0], @{ (' . $slot_access . ') }'; } +no Moose::Role; + 1;