File Coverage

blib/lib/App/PerlPackage2PlantUMLClassDiagram/Repository.pm
Criterion Covered Total %
statement 30 30 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod 0 4 0.0
total 38 42 90.4


line stmt bran cond sub pod time code
1             package App::PerlPackage2PlantUMLClassDiagram::Repository;
2 2     2   142616 use 5.014;
  2         9  
3 2     2   10 use strict;
  2         4  
  2         53  
4 2     2   23 use warnings;
  2         4  
  2         97  
5              
6 2     2   1076 use App::PerlPackage2PlantUMLClassDiagram::Package;
  2         7  
  2         562  
7              
8             sub new {
9 3     3 0 265690 my ($class) = @_;
10              
11 3         17 bless {
12             packages => [],
13             }, $class;
14             }
15              
16             sub packages {
17 9     9 0 758 my ($self) = @_;
18              
19 9         52 $self->{packages};
20             }
21              
22             sub load_package {
23 4     4 0 23 my ($self, $path) = @_;
24              
25 4         9 push @{$self->{packages}}, App::PerlPackage2PlantUMLClassDiagram::Package->new($path);
  4         25  
26             }
27              
28             sub to_plantuml {
29 3     3 0 13 my ($self) = @_;
30              
31 4         6552 my @class_syntaxes = grep { chomp($_); $_ } map {
  4         68  
32 4         5779 $_->to_class_syntax
33 3         10 } @{$self->packages};
  3         11  
34              
35 4         1652 my @inherit_syntaxes = grep { chomp($_); $_ } map {
  4         26  
36 4         17 $_->to_inherit_syntax
37 3         11 } @{$self->packages};
  3         14  
38              
39 3         36 join "\n", '@startuml', @class_syntaxes, @inherit_syntaxes, '@enduml', '';
40             }
41              
42             1;