File Coverage

blib/lib/Data/Focus/Applicative/Const/List.pm
Criterion Covered Total %
statement 20 20 100.0
branch 4 4 100.0
condition n/a
subroutine 7 7 100.0
pod 3 3 100.0
total 34 34 100.0


line stmt bran cond sub pod time code
1             package Data::Focus::Applicative::Const::List;
2 20     20   13733 use strict;
  20         26  
  20         605  
3 20     20   120 use warnings;
  20         22  
  20         488  
4 20     20   415 use parent qw(Data::Focus::Applicative::Const);
  20         232  
  20         85  
5              
6             my $PURE = __PACKAGE__->new([]);
7              
8 29     29 1 5123 sub pure { $PURE }
9              
10             sub build {
11 1063     1063 1 1706 my ($class, $builder, @f_parts) = @_;
12 1063 100       2059 if(@f_parts == 0) {
    100          
13 69         233 return $PURE;
14             }elsif(@f_parts == 1) {
15 551         1617 return $f_parts[0];
16             }else {
17 443         554 return $class->new([map { @{$_->get_const} } @f_parts]);
  1356         879  
  1356         1891  
18             }
19             }
20              
21             sub create_part_mapper {
22 1012     1012 1 1968 my ($class) = @_;
23 1012     1840   3847 return sub { $class->new([shift]) };
  1840         4639  
24             }
25              
26              
27             1;
28              
29             __END__