File Coverage

blib/lib/Data/Encoder.pm
Criterion Covered Total %
statement 21 21 100.0
branch 3 6 50.0
condition 1 3 33.3
subroutine 5 5 100.0
pod 1 1 100.0
total 31 36 86.1


line stmt bran cond sub pod time code
1             package Data::Encoder;
2              
3 2     2   582 use strict;
  2         4  
  2         69  
4 2     2   10 use warnings;
  2         3  
  2         58  
5 2     2   47 use 5.008_001;
  2         7  
  2         532  
6             our $VERSION = '0.05';
7              
8             sub load {
9 1     1 1 10 my ($class, $klass, $args) = @_;
10 1         4 $klass = _load_class($klass, __PACKAGE__);
11 1         11 return $klass->new($args);
12             }
13              
14             # code taken from Tiffany
15             my %loaded;
16             sub _load_class {
17 1     1   2 my ( $class, $prefix ) = @_;
18              
19 1 50       3 if ($prefix) {
20 1 50 33     20 unless ( $class =~ s/^\+// || $class =~ /^$prefix/ ) {
21 1         4 $class = "$prefix\::$class";
22             }
23             }
24              
25 1 50       4 return $class if $loaded{$class}++;
26              
27 1         2 my $file = $class;
28 1         5 $file =~ s!::!/!g;
29 1         638 require "$file.pm"; ## no critic
30              
31 1         5 return $class;
32             }
33              
34             1;
35             __END__