File Coverage

blib/lib/Catmandu/Fix/to_json.pm
Criterion Covered Total %
statement 22 22 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 30 30 100.0


line stmt bran cond sub pod time code
1              
2             use Catmandu::Sane;
3 1     1   92077  
  1         4  
  1         6  
4             our $VERSION = '1.2018';
5              
6             use Cpanel::JSON::XS ();
7 1     1   6 use Catmandu::Util::Path qw(as_path);
  1         2  
  1         18  
8 1     1   344 use Moo;
  1         2  
  1         42  
9 1     1   6 use namespace::clean;
  1         1  
  1         5  
10 1     1   286 use Catmandu::Fix::Has;
  1         2  
  1         4  
11 1     1   583  
  1         2  
  1         4  
12             with 'Catmandu::Fix::Builder';
13              
14             has path => (fix_arg => 1);
15              
16             my ($self) = @_;
17             my $json = Cpanel::JSON::XS->new->utf8(0)->pretty(0)->allow_nonref(1);
18 2     2   18 as_path($self->path)->updater(
19 2         15 if => [
20             [qw(maybe_value array_ref hash_ref)] => sub {
21             $json->encode($_[0]);
22             }
23 3     3   58 ]
24             );
25 2         36 }
26              
27             1;
28              
29              
30             =pod
31              
32             =head1 NAME
33              
34             Catmandu::Fix::to_json - convert the value of a field to json
35              
36             =head1 SYNOPSIS
37              
38             to_json(my.field)
39              
40             =head1 SEE ALSO
41              
42             L<Catmandu::Fix>
43              
44             =cut
45