File Coverage

blib/lib/Data/Monad/Base/MonadZero.pm
Criterion Covered Total %
statement 12 14 85.7
branch 2 2 100.0
condition n/a
subroutine 5 6 83.3
pod 2 2 100.0
total 21 24 87.5


line stmt bran cond sub pod time code
1             package Data::Monad::Base::MonadZero;
2 10     10   811 use strict;
  10         14  
  10         303  
3 10     10   37 use warnings;
  10         11  
  10         240  
4 10     10   3653 use parent qw/Data::Monad::Base::Monad/;
  10         2189  
  10         44  
5              
6             sub zero {
7 0     0 1 0 my $class = shift;
8 0         0 die "You should override this method.";
9             }
10              
11             sub filter {
12 9     9 1 14 my ($self, $predicate) = @_;
13             $self->flat_map(sub {
14 22 100   22   42 $predicate->(@_) ? (ref $self)->unit(@_) : (ref $self)->zero;
15 9         35 });
16             }
17              
18             1;
19              
20              
21             __END__