X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FString%2Freplace.pm;h=653ed82e320afb164d32f952892e6302bd8e07e9;hb=7f5ec80d99caad6df365a018719f875465358f17;hp=c46f961cb5f078480b8feb1f6a738c237662b9f3;hpb=a6ae743834ab40ad7ce85880c85cf2c748d423be;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/String/replace.pm b/lib/Moose/Meta/Method/Accessor/Native/String/replace.pm index c46f961..653ed82 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/String/replace.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/String/replace.pm @@ -3,13 +3,28 @@ package Moose::Meta::Method::Accessor::Native::String::replace; use strict; use warnings; -our $VERSION = '1.13'; +use Moose::Util (); +use Params::Util (); + +our $VERSION = '1.15'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; -use base 'Moose::Meta::Method::Accessor::Native::Writer'; +use Moose::Role; + +with 'Moose::Meta::Method::Accessor::Native::Writer' => { + -excludes => [ + qw( + _minimum_arguments + _maximum_arguments + _inline_check_arguments + _inline_optimized_set_new_value + ) + ] + }; sub _minimum_arguments { 1 } + sub _maximum_arguments { 2 } sub _inline_check_arguments { @@ -18,10 +33,10 @@ sub _inline_check_arguments { return $self->_inline_throw_error( q{'The first argument passed to replace must be a string or regexp reference'} ) - . q{ unless ! ref $_[0] || ref $_[0] eq 'Regexp';} . "\n" + . q{ unless Moose::Util::_STRINGLIKE0( $_[0] ) || Params::Util::_REGEX( $_[0] );} . $self->_inline_throw_error( q{'The second argument passed to replace must be a string or code reference'} - ) . q{ unless ! ref $_[1] || ref $_[1] eq 'CODE';}; + ) . q{ unless Moose::Util::_STRINGLIKE0( $_[1] ) || Params::Util::_CODELIKE( $_[1] );}; } sub _potential_value { @@ -36,4 +51,6 @@ sub _inline_optimized_set_new_value { return "if ( ref \$_[1] ) { $slot_access =~ s/\$_[0]/\$_[1]->()/e; } else { $slot_access =~ s/\$_[0]/\$_[1]/; }"; } +no Moose::Role; + 1;