File Coverage

blib/lib/Catmandu/Fix/join_field.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 32 32 100.0


line stmt bran cond sub pod time code
1              
2             use Catmandu::Sane;
3 1     1   94770  
  1         2  
  1         5  
4             our $VERSION = '1.2019';
5              
6             use Moo;
7 1     1   6 use Catmandu::Util::Path qw(as_path);
  1         2  
  1         3  
8 1     1   666 use Catmandu::Util qw(is_value);
  1         2  
  1         47  
9 1     1   6 use namespace::clean;
  1         2  
  1         31  
10 1     1   5 use Catmandu::Fix::Has;
  1         1  
  1         3  
11 1     1   598  
  1         3  
  1         5  
12             has path => (fix_arg => 1);
13             has join_char => (fix_arg => 1, default => sub {''});
14              
15             with 'Catmandu::Fix::Builder';
16              
17             my ($self) = @_;
18             my $join_char = $self->join_char;
19 5     5   36 as_path($self->path)->updater(
20 5         12 if_array_ref => sub {
21             join $join_char, grep {is_value($_)} @{$_[0]};
22             }
23 5     5   8 );
  20         113  
  5         10  
24             }
25 5         42  
26             1;
27              
28              
29             =pod
30              
31             =head1 NAME
32              
33             Catmandu::Fix::join_field - join the ARRAY values of a field into a string
34              
35             =head1 SYNOPSIS
36              
37             # Join the array values of a field into a string. E.g. foo => [1,2,3]
38             join_field(foo, /) # foo => "1/2/3"
39              
40             =head1 SEE ALSO
41              
42             L<Catmandu::Fix>
43              
44             =cut