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 17     17   17215 use strict;
  17         57  
  17         613  
3 17     17   69 use warnings;
  17         22  
  17         556  
4 17     17   555 use parent qw(Data::Focus::Applicative::Const);
  17         275  
  17         97  
5              
6             my $PURE = __PACKAGE__->new([]);
7              
8 25     25 1 4059 sub pure { $PURE }
9              
10             sub build {
11 618     618 1 1319 my ($class, $builder, @f_parts) = @_;
12 618 100       1549 if(@f_parts == 0) {
    100          
13 53         269 return $PURE;
14             }elsif(@f_parts == 1) {
15 284         1121 return $f_parts[0];
16             }else {
17 281         469 return $class->new([map { @{$_->get_const} } @f_parts]);
  850         718  
  850         1642  
18             }
19             }
20              
21             sub create_part_mapper {
22 563     563 1 1690 my ($class) = @_;
23 563     1067   2874 return sub { $class->new([shift]) };
  1067         3539  
24             }
25              
26              
27             1;
28              
29             __END__