X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FArray%2Fsort_in_place.pm;h=9b804b1939729ab43bcb761f46401b74a0c3342c;hb=00bbc132f9e1cb2b1a44aa287887cafa27a84577;hp=41a895f71ba9c904ec7347c8643bf35b8160dcbc;hpb=8b9641b857cdd065a68f9b74ad072b1d58fcd4e1;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/Array/sort_in_place.pm b/lib/Moose/Meta/Method/Accessor/Native/Array/sort_in_place.pm index 41a895f..9b804b1 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/Array/sort_in_place.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/Array/sort_in_place.pm @@ -3,40 +3,40 @@ package Moose::Meta::Method::Accessor::Native::Array::sort_in_place; use strict; use warnings; -our $VERSION = '1.14'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; +use Params::Util (); use Moose::Role; -with 'Moose::Meta::Method::Accessor::Native::Array::Writer' => { - -excludes => [ - qw( - _maximum_arguments - _inline_check_arguments - ) - ] -}; +with 'Moose::Meta::Method::Accessor::Native::Array::Writer'; sub _maximum_arguments { 1 } sub _inline_check_arguments { my $self = shift; - return $self->_inline_throw_error( - q{'The argument passed to sort_in_place must be a code reference'}) - . q{if $_[0] && ( ref $_[0] || q{} ) ne 'CODE';}; + return ( + 'if (@_ && !Params::Util::_CODELIKE($_[0])) {', + $self->_inline_throw_error( + '"The argument passed to sort_in_place must be a code ' + . 'reference"', + ) . ';', + '}', + ); } sub _adds_members { 0 } sub _potential_value { - my ( $self, $slot_access ) = @_; + my $self = shift; + my ($slot_access) = @_; - return - "[ \$_[0] ? sort { \$_[0]->( \$a, \$b ) } \@{ $slot_access } : sort \@{ $slot_access} ]"; + return '[ $_[0] ' + . '? sort { $_[0]->($a, $b) } @{ (' . $slot_access . ') } ' + . ': sort @{ (' . $slot_access . ') } ]'; } +sub _return_value { '' } + no Moose::Role; 1;