File Coverage

blib/lib/App/PerlPackage2PlantUMLClassDiagram/Repository.pm
Criterion Covered Total %
statement 29 29 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod 0 4 0.0
total 37 41 90.2


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