File Coverage

blib/lib/Moose/Meta/Method/Accessor/Native/Array/reduce.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition n/a
subroutine 10 10 100.0
pod n/a
total 35 35 100.0


line stmt bran cond sub pod time code
1             package Moose::Meta::Method::Accessor::Native::Array::reduce;
2             our $VERSION = '2.2203';
3              
4 4     4   2401 use strict;
  4         10  
  4         124  
5 4     4   20 use warnings;
  4         9  
  4         110  
6              
7 4     4   27 use List::Util ();
  4         8  
  4         62  
8 4     4   28 use Params::Util ();
  4         9  
  4         82  
9              
10 4     4   21 use Moose::Role;
  4         8  
  4         29  
11              
12             with 'Moose::Meta::Method::Accessor::Native::Reader';
13              
14 19     19   58 sub _minimum_arguments { 1 }
15              
16 19     19   63 sub _maximum_arguments { 1 }
17              
18             sub _inline_check_arguments {
19 19     19   41 my $self = shift;
20              
21             return (
22 19         62 'if (!Params::Util::_CODELIKE($_[0])) {',
23             $self->_inline_throw_exception( InvalidArgumentToMethod =>
24             'argument => $_[0],'.
25             'method_name => "reduce",'.
26             'type_of_argument => "code reference",'.
27             'type => "CodeRef",',
28             ) . ';',
29             '}',
30             );
31             }
32              
33             sub _return_value {
34 19     19   39 my $self = shift;
35 19         45 my ($slot_access) = @_;
36              
37 19         159 return 'List::Util::reduce { $_[0]->($a, $b) } @{ (' . $slot_access . ') }';
38             }
39              
40 4     4   32 no Moose::Role;
  4         20  
  4         18  
41              
42             1;