File Coverage

blib/lib/Pinwheel/View/Wrap/Array.pm
Criterion Covered Total %
statement 29 29 100.0
branch 2 2 100.0
condition n/a
subroutine 12 12 100.0
pod 0 8 0.0
total 43 51 84.3


line stmt bran cond sub pod time code
1             package Pinwheel::View::Wrap::Array;
2              
3 9     9   38759 use strict;
  9         23  
  9         296  
4 9     9   45 use warnings;
  9         15  
  9         512  
5              
6 9     9   84 use Carp qw(croak);
  9         19  
  9         4962  
7              
8             our $AUTOLOAD;
9             our @WRAP_METHODS = qw(first last reverse sort min max length size empty);
10              
11              
12             sub first
13             {
14 10     10 0 707 return $_[1]->[0];
15             }
16              
17             sub last
18             {
19 3     3 0 12 return $_[1]->[-1];
20             }
21              
22             sub reverse
23             {
24 2     2 0 250 return [reverse @{$_[1]}];
  2         10  
25             }
26              
27             sub sort
28             {
29 2     2 0 4 return [sort @{$_[1]}];
  2         14  
30             }
31              
32             sub min
33             {
34 2     2 0 4 return [sort { $a <=> $b } @{$_[1]}]->[0];
  5         15  
  2         11  
35             }
36              
37             sub max
38             {
39 2     2 0 5 return [sort { $a <=> $b } @{$_[1]}]->[-1];
  5         12  
  2         10  
40             }
41              
42             sub length
43             {
44 6     6 0 323 return scalar(@{$_[1]});
  6         41  
45             }
46              
47             *size = *length;
48              
49             sub empty
50             {
51 4     4 0 8 return scalar(@{$_[1]}) == 0;
  4         18  
52             }
53              
54             sub AUTOLOAD
55             {
56 3     3   726 my ($name);
57              
58 3         6 $name = $AUTOLOAD;
59 3         16 $name =~ s/.*:://;
60 3 100       461 croak "Bad array method '$name'" unless $name =~ /[A-Z]/;
61             }
62              
63              
64             1;