File Coverage

blib/lib/Catmandu/Fix/count.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 29 29 100.0


line stmt bran cond sub pod time code
1             package Catmandu::Fix::count;
2              
3 1     1   101889 use Catmandu::Sane;
  1         4  
  1         7  
4              
5             our $VERSION = '1.2020';
6              
7 1     1   8 use Moo;
  1         1  
  1         5  
8 1     1   788 use Catmandu::Util::Path qw(as_path);
  1         2  
  1         56  
9 1     1   7 use namespace::clean;
  1         2  
  1         3  
10 1     1   764 use Catmandu::Fix::Has;
  1         3  
  1         5  
11              
12             with 'Catmandu::Fix::Builder';
13              
14             has path => (fix_arg => 1);
15              
16             sub _build_fixer {
17 4     4   42 my ($self) = @_;
18             as_path($self->path)->updater(
19             if => [
20 1     1   2 array_ref => sub {scalar @{$_[0]}},
  1         20  
21 2     2   4 hash_ref => sub {scalar keys %{$_[0]}},
  2         39  
22 4         16 ],
23             );
24             }
25              
26             1;
27              
28             __END__
29              
30             =pod
31              
32             =head1 NAME
33              
34             Catmandu::Fix::count - replace the value of an array or hash field with its count
35              
36             =head1 SYNOPSIS
37              
38             # e.g. tags => ["foo", "bar"]
39             count(tags) # tags => 2
40              
41             =head1 SEE ALSO
42              
43             L<Catmandu::Fix>
44              
45             =cut