File Coverage

blib/lib/App/Pods2Site/SiteBuilder/BasicFramesSimpleTOC.pm
Criterion Covered Total %
statement 12 52 23.0
branch 0 12 0.0
condition 0 2 0.0
subroutine 4 6 66.6
pod n/a
total 16 72 22.2


line stmt bran cond sub pod time code
1             package App::Pods2Site::SiteBuilder::BasicFramesSimpleTOC;
2              
3 2     2   11 use strict;
  2         4  
  2         48  
4 2     2   9 use warnings;
  2         4  
  2         92  
5              
6             our $VERSION = '1.003';
7             my $version = $VERSION;
8             $VERSION = eval $VERSION;
9              
10 2     2   18 use base qw(App::Pods2Site::SiteBuilder::AbstractBasicFrames);
  2         4  
  2         791  
11              
12 2     2   12 use App::Pods2Site::Util qw(slashify);
  2         3  
  2         817  
13              
14             sub _getCategoryTOC
15             {
16 0     0     my $self = shift;
17 0           my $groupName = shift;
18 0           my $podInfo = shift;
19 0           my $sitedir = shift;
20            
21 0           my $toc = '';
22 0           my %tree;
23 0           foreach my $podName (sort(keys(%$podInfo)))
24             {
25 0           my $treeloc = \%tree;
26 0           for my $level (split(/::/, $podName))
27             {
28 0 0         $treeloc->{$level} = {} unless exists($treeloc->{$level});
29 0           $treeloc = $treeloc->{$level};
30             }
31             }
32 0           $self->_genRefs($sitedir, \$toc, $podInfo, \%tree);
33 0           chomp($toc);
34 0 0         my $groupnameelem = $groupName ? "$groupName

\n" : '';
35 0 0         $toc = qq($groupnameelem$toc

) if $toc;
36            
37 0           return $toc;
38             }
39              
40             sub _genRefs
41             {
42 0     0     my $self = shift;
43 0           my $sitedir = shift;
44 0           my $ref = shift;
45 0           my $podInfo = shift;
46 0           my $treeloc = shift;
47 0   0       my $depth = shift || 0;
48 0           my $n = shift;
49 0           my $np = shift;
50              
51 0           my $r = '';
52 0 0         if ($n)
53             {
54 0           $r = "${n}::";
55 0 0         $$ref .= (' ' x ($depth - 1)) if $depth > 1;
56 0           my $p = $podInfo->{$n}->{htmlfile};
57 0 0         if ($p)
58             {
59 0           $p =~ s#\Q$sitedir\E.##;
60 0           $p = slashify($p, '/');
61 0           $$ref .= qq($np
\n);
62             }
63             else
64             {
65 0           $$ref .= qq($np
\n);
66             }
67             }
68 0           foreach my $subnp (sort { lc($a) cmp lc($b) } (keys(%$treeloc)))
  0            
69             {
70 0           my $subn = "$r$subnp";
71            
72 0           $depth++;
73 0           $self->_genRefs($sitedir, $ref, $podInfo, $treeloc->{$subnp}, $depth, $subn, $subnp);
74 0           $depth--;
75             }
76             }
77              
78             1;