File Coverage

blib/lib/File/Serialize/Serializer/JSON/MaybeXS.pm
Criterion Covered Total %
statement 15 15 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 1 2 50.0
total 23 24 95.8


line stmt bran cond sub pod time code
1             package File::Serialize::Serializer::JSON::MaybeXS;
2             our $AUTHORITY = 'cpan:YANICK';
3             #ABSTRACT: JSON::MaybeXS serializer for File::Serialize
4             $File::Serialize::Serializer::JSON::MaybeXS::VERSION = '1.4.0';
5 6     6   5249 use strict;
  6         13  
  6         173  
6 6     6   27 use warnings;
  6         9  
  6         149  
7              
8 6     6   482 use Moo;
  6         6742  
  6         29  
9             with 'File::Serialize::Serializer';
10              
11 56     56 1 169 sub extensions { qw/ json js / };
12              
13             sub serialize {
14             my( $self, $data, $options ) = @_;
15             JSON::MaybeXS->new(%$options)->encode( $data);
16             }
17              
18             sub deserialize {
19             my( $self, $data, $options ) = @_;
20             JSON::MaybeXS->new(%$options)->decode( $data);
21             }
22              
23             sub groom_options {
24 37     37 0 101 my( $self, $options ) = @_;
25              
26 37         149 my %groomed;
27 37         87 for my $k( qw/ pretty canonical allow_nonref / ) {
28 111 100       371 $groomed{$k} = $options->{$k} if defined $options->{$k};
29             }
30              
31 37         132 return \%groomed;
32             }
33              
34             1;
35              
36             __END__