File Coverage

blib/lib/Data/Serializer/Data/Dumper.pm
Criterion Covered Total %
statement 29 30 96.6
branch 7 10 70.0
condition n/a
subroutine 8 8 100.0
pod 2 2 100.0
total 46 50 92.0


line stmt bran cond sub pod time code
1             package Data::Serializer::Data::Dumper;
2 11     11   468 BEGIN { @Data::Serializer::Data::Dumper::ISA = qw(Data::Serializer) }
3              
4 11     11   62 use warnings;
  11         20  
  11         332  
5 11     11   60 use strict;
  11         21  
  11         369  
6 11     11   62 use Carp;
  11         5846  
  11         805  
7 11     11   70 use Data::Dumper;
  11         19  
  11         525  
8              
9 11     11   55 use vars qw($VERSION @ISA);
  11         21  
  11         3488  
10              
11              
12             $VERSION = '0.05';
13              
14              
15             #
16             # Create a Data::Dumper serializer object.
17             #
18              
19             sub serialize {
20 231     231 1 357 my $self = shift;
21 231         342 my ($val) = @_;
22 231 50       543 return undef unless defined $val;
23              
24 231         337 local $Data::Dumper::Indent = 0;
25 231         320 local $Data::Dumper::Purity = 1;
26 231         296 local $Data::Dumper::Terse = 1;
27             #return Data::Dumper::Dumper($val);
28             #Eval'ing this statement will leave $M defined
29 231         1408 return Data::Dumper->Dump([$val],['M']);
30             }
31              
32              
33             #
34             #
35             # Shamelessly copied from Data::Dumper::Serializer::Data::Dumper
36             # With apologies to relevant parties for not getting the
37             # self-referencing right the first time
38             #
39              
40             sub deserialize {
41 231     231 1 352 my $self = shift;
42 231         388 my ($val) = @_;
43 231 50       522 return undef unless defined $val;
44 231         309 my $M = "";
45             # Disambiguate hashref (perl may treat it as a block)
46 231 100       17985 my $N = eval($val =~ /^\{/ ? '+'.$val : $val);
47 231 100       1931 return $M ? $M : $N unless $@;
    50          
48 0           carp "Data::Serializer error: $@\twhile evaluating:\n $val";
49             }
50              
51             # avoid used only once warnings
52             {
53             local $Data::Dumper::Terse;
54             }
55              
56             1;
57             __END__