Commit | Line | Data |
---|---|---|
e7724627 | 1 | package Moose::Meta::Method::Accessor::Native::String::chop; |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | ||
8b9641b8 | 6 | use Moose::Role; |
7 | ||
8 | with 'Moose::Meta::Method::Accessor::Native::Writer' => { | |
9 | -excludes => [ | |
10 | qw( | |
11 | _maximum_arguments | |
a486d5ad | 12 | _inline_optimized_set_new_value |
7f5ec80d | 13 | _return_value |
8b9641b8 | 14 | ) |
15 | ] | |
16 | }; | |
e7724627 | 17 | |
e7724627 | 18 | sub _maximum_arguments { 0 } |
19 | ||
20 | sub _potential_value { | |
53a4677c | 21 | my $self = shift; |
22 | my ($slot_access) = @_; | |
23 | ||
24 | return '(do { ' | |
25 | . 'my $val = ' . $slot_access . '; ' | |
26 | . '@return = chop $val; ' | |
27 | . '$val; ' | |
28 | . '})'; | |
e7724627 | 29 | } |
30 | ||
a486d5ad | 31 | sub _inline_optimized_set_new_value { |
53a4677c | 32 | my $self = shift; |
33 | my ($inv, $new, $slot_access) = @_; | |
e7724627 | 34 | |
a486d5ad | 35 | return '@return = chop ' . $slot_access . ';'; |
7f5ec80d | 36 | } |
37 | ||
38 | sub _return_value { | |
53a4677c | 39 | my $self = shift; |
40 | my ($slot_access) = @_; | |
7f5ec80d | 41 | |
42 | return '$return[0]'; | |
e7724627 | 43 | } |
44 | ||
8b9641b8 | 45 | no Moose::Role; |
46 | ||
e7724627 | 47 | 1; |