1 package Moose::Meta::Method::Accessor::Native::String::replace;
9 our $AUTHORITY = 'cpan:STEVAN';
13 with 'Moose::Meta::Method::Accessor::Native::Writer' => {
18 _inline_check_arguments
19 _inline_optimized_set_new_value
24 sub _minimum_arguments { 1 }
26 sub _maximum_arguments { 2 }
28 sub _inline_check_arguments {
32 'if (!Moose::Util::_STRINGLIKE0($_[0]) && !Params::Util::_REGEX($_[0])) {',
33 $self->_inline_throw_error(
34 '"The first argument passed to replace must be a string or '
38 'if (!Moose::Util::_STRINGLIKE0($_[1]) && !Params::Util::_CODELIKE($_[1])) {',
39 $self->_inline_throw_error(
40 '"The second argument passed to replace must be a string or '
47 sub _potential_value {
49 my ($slot_access) = @_;
52 . 'my $val = ' . $slot_access . '; '
54 . '? $val =~ s/$_[0]/$_[1]->()/e '
55 . ': $val =~ s/$_[0]/$_[1]/; '
60 sub _inline_optimized_set_new_value {
62 my ($inv, $new, $slot_access) = @_;
66 '? ' . $slot_access . ' =~ s/$_[0]/$_[1]->()/e',
67 ': ' . $slot_access . ' =~ s/$_[0]/$_[1]/;',