File Coverage

blib/lib/Kelp/Module/JSON/XS.pm
Criterion Covered Total %
statement 18 18 100.0
branch 2 4 50.0
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 25 27 92.5


line stmt bran cond sub pod time code
1             package Kelp::Module::JSON::XS;
2 1     1   21920 use Kelp::Base 'Kelp::Module';
  1         4  
  1         7  
3 1     1   217 use JSON::XS;
  1         3  
  1         77  
4 1     1   6 use Carp;
  1         19  
  1         285  
5              
6             our $VERSION = 0.502;
7              
8             sub build {
9 1     1 1 95 my ( $self, %args ) = @_;
10 1         7 my $json = JSON::XS->new;
11              
12             # JSON::XS doesn't seem to have a property method
13 1         4 my $opts = join '->', map { "${_}($args{$_})" } keys %args;
  3         13  
14 1 50       6 if ( $opts ) {
15 1         1 local $@;
16 1         89 eval "\$json->$opts;";
17 1 50       9 croak $@ if $@;
18             }
19              
20 1         9 $self->register( json => $json );
21             }
22              
23             1;
24              
25             __END__