Refactored native trait accessors so they are done entirely in roles.
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / map.pm
CommitLineData
f7fd22b6 1package Moose::Meta::Method::Accessor::Native::Array::map;
2
3use strict;
4use warnings;
5
10bd99ec 6our $VERSION = '1.14';
f7fd22b6 7$VERSION = eval $VERSION;
8our $AUTHORITY = 'cpan:STEVAN';
9
8b9641b8 10use Moose::Role;
11
12with 'Moose::Meta::Method::Accessor::Native::Reader' => {
13 -excludes => [
14 qw(
15 _minimum_arguments
16 _maximum_arguments
17 _inline_check_arguments
18 )
19 ]
20};
f7fd22b6 21
a7821be5 22sub _minimum_arguments { 1 }
23
24sub _maximum_arguments { 1 }
f7fd22b6 25
910684ee 26sub _inline_check_arguments {
e3181911 27 my $self = shift;
28
29 return $self->_inline_throw_error(
30 q{'The argument passed to map must be a code reference'})
31 . q{if $_[0] && ( ref $_[0] || q{} ) ne 'CODE';};
910684ee 32}
33
f7fd22b6 34sub _return_value {
35 my $self = shift;
36 my $slot_access = shift;
37
a7821be5 38 return "map { \$_[0]->() } \@{ $slot_access }";
f7fd22b6 39}
40
8b9641b8 41no Moose::Role;
42
f7fd22b6 431;