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   21854 use 5.014;
  2         8  
3 2     2   10 use strict;
  2         2  
  2         42  
4 2     2   10 use warnings;
  2         3  
  2         56  
5              
6 2     2   1091 use App::PerlPackage2PlantUMLClassDiagram::Package;
  2         9  
  2         515  
7              
8             sub new {
9 3     3 0 5569 my ($class) = @_;
10              
11 3         16 bless {
12             packages => [],
13             }, $class;
14             }
15              
16             sub packages {
17 9     9 0 508 my ($self) = @_;
18              
19 9         42 $self->{packages};
20             }
21              
22             sub load_package {
23 4     4 0 20 my ($self, $path) = @_;
24              
25 4         6 push @{$self->{packages}}, App::PerlPackage2PlantUMLClassDiagram::Package->new($path);
  4         25  
26             }
27              
28             sub to_plantuml {
29 3     3 0 10 my ($self) = @_;
30              
31 4         4376 my @class_syntaxes = grep { chomp($_); $_ } map {
  4         54  
32 4         4143 $_->to_class_syntax
33 3         5 } @{$self->packages};
  3         10  
34              
35 4         1079 my @inherit_syntaxes = grep { chomp($_); $_ } map {
  4         18  
36 4         15 $_->to_inherit_syntax
37 3         7 } @{$self->packages};
  3         12  
38              
39 3         28 join "\n", '@startuml', @class_syntaxes, @inherit_syntaxes, '@enduml', '';
40             }
41              
42             1;