added grep_in_place attribute trait
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / grep_in_place.pm
1 package Moose::Meta::Method::Accessor::Native::Array::grep_in_place;
2
3 use strict;
4 use warnings;
5
6 use Params::Util ();
7
8 our $VERSION = '1.9900';
9 $VERSION = eval $VERSION;
10 our $AUTHORITY = 'cpan:STEVAN';
11
12 use Moose::Role;
13
14 with 'Moose::Meta::Method::Accessor::Native::Array::Writer' => {
15     -excludes => [
16         qw(
17             _maximum_arguments
18             _inline_check_arguments
19             _return_value
20             )
21     ]
22 };
23
24 sub _maximum_arguments { 1 }
25 sub _minimun_arguments { 1 }
26
27 sub _inline_check_arguments {
28     my $self = shift;
29     return $self->_inline_throw_error(
30         q{'The argument passed to grep_in_place must be a code reference'})
31         . q{ unless Params::Util::_CODELIKE( $_[0] );};
32 }
33
34 sub _adds_members { 0 }
35
36 sub _potential_value {
37     my ($self, $slot_access) = @_;
38
39     return '[ grep { $_[0]->($_) } @{ (' . $slot_access . ') } ]';
40 }
41
42 sub _return_value { '' }
43
44 no Moose::Role;
45
46 1;