File Coverage

blib/lib/String/Secret/Serializable.pm
Criterion Covered Total %
statement 15 21 71.4
branch 2 2 100.0
condition n/a
subroutine 6 10 60.0
pod 0 7 0.0
total 23 40 57.5


line stmt bran cond sub pod time code
1             package String::Secret::Serializable;
2 5     5   1127 use strict;
  5         14  
  5         152  
3 5     5   21 use warnings;
  5         10  
  5         178  
4              
5 5     5   2358 use parent qw/String::Secret/;
  5         1649  
  5         37  
6              
7 0     0 0 0 sub to_serializable { shift }
8              
9             # for Storable
10             sub STORABLE_freeze {
11 2     2 0 45 my ($self, $cloning) = @_;
12 2 100       11 return $self->SUPER::STORABLE_freeze($cloning) if $cloning;
13 1         6 return $self->unwrap;
14             }
15             sub STORABLE_thaw {
16 2     2 0 720 my ($self, $cloning, $raw) = @_;
17 2         10 return $self->SUPER::STORABLE_thaw(1, $raw); # force cloging to set REAL secret
18             }
19              
20             # for JSON modules
21 1     1 0 47 sub TO_JSON { shift->unwrap }
22              
23             # for CBOR
24 0     0 0   sub TO_CBOR { shift->unwrap }
25              
26             # for JSON, CBOR, Sereal, ...
27             sub FREEZE {
28 0     0 0   my ($self, $serialiser) = @_;
29 0           return $self->unwrap;
30             }
31             sub THAW {
32 0     0 0   my ($class, $serialiser, $raw) = @_;
33 0           return $class->new($raw);
34             }
35              
36             1;
37             __END__