File Coverage

lib/PPI/Transform/Doxygen/POD.pm
Criterion Covered Total %
statement 29 34 85.2
branch 2 4 50.0
condition 0 3 0.0
subroutine 10 12 83.3
pod 6 6 100.0
total 47 59 79.6


line stmt bran cond sub pod time code
1             package PPI::Transform::Doxygen::POD;
2              
3 2     2   36 use 5.010001;
  2         7  
4 2     2   9 use strict;
  2         3  
  2         33  
5 2     2   8 use warnings;
  2         4  
  2         47  
6 2     2   9 use parent qw(Pod::POM::View::HTML);
  2         4  
  2         10  
7              
8             our $VERSION = '0.33';
9              
10             our $PREFIX = '';
11              
12             sub view_pod {
13 20     20 1 315 my ($self, $pod) = @_;
14 20         64 return $pod->content->present($self);
15             }
16              
17             sub view_head1 {
18 3     3 1 9475 my ($self, $head1) = @_;
19 3         23 my $title = $head1->title->present($self);
20 3         333 (my $name = $title) =~ s/\s/_/g;
21 3         22 return "\n\@section ${PREFIX}_$name $title\n" . $head1->content->present($self);
22             }
23              
24             sub view_head2 {
25 9     9 1 164 my ($self, $head2) = @_;
26 9         42 my $title = $head2->title->present($self);
27 9         588 (my $name = $title) =~ s/\s/_/g;
28 9 100       48 my $sect = $title =~ /[\w:]+\s*\(.*\)/
29             ? "\n"
30             : "\n\@subsection $name $title\n";
31 9         38 return $sect . $head2->content->present($self);
32             }
33              
34             sub view_seq_code {
35 1     1 1 70 my ($self, $text) = @_;
36 1         6 return qq($text);
37             }
38              
39             sub view_verbatim {
40 1     1 1 20 my ($self, $text) = @_;
41 1         5 _unescape($text);
42 1         7 return "\n\@code\n$text\n\@endcode\n";
43             }
44              
45             sub view_seq_link {
46 0     0 1 0 my ($self, $link) = @_;
47 0         0 my($title, $pre) = split(/\|/, $link);
48 0 0 0     0 my $url = $pre && $pre =~ m(^\w+://)
49             ? qq($title)
50             : $self->SUPER::view_seq_link($link);
51 0         0 return $url;
52             }
53              
54             my %XML_TO = (
55             '&' => '&',
56             '<' => '<',
57             '>' => '>',
58             '"' => '"',
59             '\'' => '''
60             );
61             my %XML_FROM = reverse %XML_TO;
62              
63             sub _unescape {
64 1     1   31 $_[0] =~ s!\Q$_!$XML_FROM{$_}!g for keys %XML_FROM;
65 1         4 $_[0] =~ s!\\(\@|\\|\%|#)!$1!g;
66             }
67              
68             sub _escape {
69 0     0     $_[0] =~ s!\Q$_!$XML_TO{$_}!g for keys %XML_TO;
70             }
71              
72              
73             1;
74              
75             __END__