File Coverage

blib/lib/App/Table2YAML.pm
Criterion Covered Total %
statement 38 38 100.0
branch 3 4 75.0
condition n/a
subroutine 10 10 100.0
pod 1 2 50.0
total 52 54 96.3


line stmt bran cond sub pod time code
1             package App::Table2YAML;
2              
3 1     1   907 use common::sense;
  1         2  
  1         7  
4 1     1   2146 use charnames q(:full);
  1         40623  
  1         8  
5 1     1   207 use Carp;
  1         2  
  1         88  
6 1     1   1021 use English qw[-no_match_vars];
  1         5895  
  1         9  
7 1     1   6059 use Moo;
  1         44647  
  1         10  
8 1     1   6048 use App::Table2YAML::Loader;
  1         4  
  1         45  
9 1     1   719 use App::Table2YAML::Serializer;
  1         4  
  1         509  
10              
11             our $VERSION = '0.002'; # VERSION
12              
13             has loader => (
14             is => q(rw),
15             default => sub { App::Table2YAML::Loader->new(); },
16             );
17             has serializer => (
18             is => q(rw),
19             default => sub { App::Table2YAML::Serializer->new(); },
20             );
21              
22             sub BUILD {
23 15     15 0 508 my $self = shift;
24 15         23 my $args = shift;
25              
26 15         22 foreach my $method ( keys %{$args} ) {
  15         54  
27 40         63 foreach my $class (qw[loader serializer]) {
28 80 100       763 if ( $self->$class->can($method) ) {
29 40         84 my $value = delete $args->{$method};
30 40         581 $self->$class->$method($value);
31             }
32             }
33             }
34              
35 15         299 return 1;
36             } ## end sub BUILD
37              
38             sub convert {
39 14     14 1 6028 my $self = shift;
40              
41 14         72 my @table = $self->loader->load();
42              
43 6 50       34 return unless @table;
44              
45 6         56 my @yaml = $self->serializer->serialize(@table);
46              
47 6         327 return @yaml;
48             }
49              
50 1     1   7 no Moo;
  1         2  
  1         5  
51             __PACKAGE__->meta->make_immutable;
52              
53             1;
54              
55             __END__