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 11     11   1108 use strict;
  11         18  
  11         269  
3 11     11   51 use warnings;
  11         20  
  11         278  
4 11     11   6376 use parent qw/Data::Monad::Base::Monad/;
  11         2916  
  11         63  
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 19 my ($self, $predicate) = @_;
13             $self->flat_map(sub {
14 22 100   22   58 $predicate->(@_) ? (ref $self)->unit(@_) : (ref $self)->zero;
15 9         44 });
16             }
17              
18             1;
19              
20              
21             __END__