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