File Coverage

blib/lib/App/PAIA/JSON.pm
Criterion Covered Total %
statement 18 23 78.2
branch 1 4 25.0
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 25 35 71.4


line stmt bran cond sub pod time code
1             package App::PAIA::JSON;
2 4     4   12 use strict;
  4         6  
  4         104  
3 4     4   35 use v5.10;
  4         10  
  4         119  
4              
5 4     4   19 use parent 'Exporter';
  4         4  
  4         31  
6             our @EXPORT = qw(decode_json encode_json);
7 4     4   223 use JSON::PP qw();
  4         5  
  4         558  
8              
9             sub decode_json {
10 18     18 0 31 my $json = shift;
11 18         23 my $data = eval { JSON::PP->new->utf8->relaxed->decode($json); };
  18         89  
12 18 50       8691 if ($@) {
13 0         0 my $msg = reverse $@;
14 0         0 $msg =~ s/.+? ta //sm;
15 0         0 $msg = "JSON error: " . scalar reverse($msg);
16 0 0       0 $msg .= " in " . shift if @_;
17 0         0 die "$msg\n";
18             }
19 18         42 return $data;
20             }
21              
22             sub encode_json {
23 16     16 0 96 JSON::PP->new->utf8->pretty->encode($_[0]);
24             }
25              
26             1;
27             __END__