File Coverage

blib/lib/YAML/Marshall.pm
Criterion Covered Total %
statement 41 41 100.0
branch 4 6 66.6
condition 2 3 66.6
subroutine 11 11 100.0
pod 0 4 0.0
total 58 65 89.2


line stmt bran cond sub pod time code
1 2     2   102707 use strict; use warnings;
  2     2   13  
  2         54  
  2         10  
  2         3  
  2         65  
2             package YAML::Marshall;
3              
4 2     2   376 use YAML::Node ();
  2         4  
  2         65  
5              
6             sub import {
7 4     4   107 my $class = shift;
8 2     2   27 no strict 'refs';
  2         4  
  2         173  
9 4         8 my $package = caller;
10 4 50       7 unless (grep { $_ eq $class} @{$package . '::ISA'}) {
  3         15  
  4         18  
11 4         7 push @{$package . '::ISA'}, $class;
  4         34  
12             }
13              
14 4         13 my $tag = shift;
15 4 100       1651 if ( $tag ) {
16 2     2   14 no warnings 'once';
  2         5  
  2         180  
17 1         3 $YAML::TagClass->{$tag} = $package;
18 1         2 ${$package . "::YamlTag"} = $tag;
  1         56  
19             }
20             }
21              
22             sub yaml_dump {
23 3     3 0 14 my $self = shift;
24 2     2   12 no strict 'refs';
  2         3  
  2         359  
25 3   66     4 my $tag = ${ref($self) . "::YamlTag"} || 'perl/' . ref($self);
26 3         10 $self->yaml_node($self, $tag);
27             }
28              
29             sub yaml_load {
30 2     2 0 13 my ($class, $node) = @_;
31 2 50       22 if (my $ynode = $class->yaml_ynode($node)) {
32 2         5 $node = $ynode->{NODE};
33             }
34 2         8 bless $node, $class;
35             }
36              
37             sub yaml_node {
38 4     4 0 25 shift;
39 4         14 YAML::Node->new(@_);
40             }
41              
42             sub yaml_ynode {
43 2     2 0 5 shift;
44 2         5 YAML::Node::ynode(@_);
45             }
46              
47             1;