File Coverage

blib/lib/Mail/LMLM/Render/HTML.pm
Criterion Covered Total %
statement 12 139 8.6
branch 0 24 0.0
condition n/a
subroutine 4 20 20.0
pod 14 14 100.0
total 30 197 15.2


line stmt bran cond sub pod time code
1             package Mail::LMLM::Render::HTML;
2             $Mail::LMLM::Render::HTML::VERSION = '0.6805';
3 1     1   6 use strict;
  1         2  
  1         25  
4 1     1   4 use warnings;
  1         1  
  1         22  
5              
6 1     1   3 use vars qw(@ISA);
  1         2  
  1         40  
7              
8 1     1   354 use Mail::LMLM::Render;
  1         4  
  1         1096  
9              
10             @ISA=qw(Mail::LMLM::Render);
11              
12             sub initialize
13             {
14 0     0 1   my $self = shift;
15              
16 0           my $out_file = shift;
17              
18 0           $self->{'out'} = $out_file;
19              
20 0           return 0;
21             }
22              
23             sub _htmlize_onechar
24             {
25 0     0     my $c = shift;
26              
27 0 0         if ($c eq "<")
    0          
    0          
    0          
28             {
29 0           return "\<";
30             }
31             elsif ($c eq ">")
32             {
33 0           return "\>";
34             }
35             elsif ($c eq '&')
36             {
37 0           return "\&"
38             }
39             elsif ($c eq "\n")
40             {
41 0           return "
";
42             }
43             else
44             {
45 0           return $c;
46             }
47             }
48              
49             sub _htmlize
50             {
51 0     0     my $text = shift;
52              
53 0           $text =~ s/(<|>|\&|\n)/_htmlize_onechar($1)/ge;
  0            
54              
55 0           return $text;
56             }
57              
58             sub text
59             {
60 0     0 1   my $self = shift;
61              
62 0           my $text = shift;
63              
64 0           my $style;
65              
66 0 0         if (scalar(@_))
67             {
68 0           $style = shift;
69             }
70             else
71             {
72 0           $style = {};
73             }
74              
75 0           my $out = _htmlize($text);
76              
77 0 0         if ($style->{'bold'})
78             {
79 0           $out = "".$out."";
80             }
81 0 0         if ($style->{'underline'})
82             {
83 0           $out = "".$out."";
84             }
85 0 0         if ($style->{'italic'})
86             {
87 0           $out = "".$out."";
88             }
89              
90 0           print {*{$self->{'out'}}} $out;
  0            
  0            
91              
92 0           return 0;
93             }
94              
95             sub newline
96             {
97 0     0 1   my $self = shift;
98              
99 0           print {*{$self->{'out'}}} "
\n" ;
  0            
  0            
100             }
101              
102             sub indent_inc
103             {
104 0     0 1   my $self = shift;
105              
106 0           print {*{$self->{'out'}}} "\n
\n";
  0            
  0            
107              
108 0           return 0;
109             }
110              
111             sub indent_dec
112             {
113 0     0 1   my $self = shift;
114              
115 0           print {*{$self->{'out'}}} "\n\n" ;
  0            
  0            
116              
117 0           return 0;
118             }
119              
120             sub start_link
121             {
122 0     0 1   my $self = shift;
123              
124 0           my $url = shift;
125              
126 0           print {*{$self->{'out'}}} "";
  0            
  0            
127              
128 0           return 0;
129             }
130              
131             sub end_link
132             {
133 0     0 1   my $self = shift;
134              
135 0           print {*{$self->{'out'}}} "";
  0            
  0            
136              
137 0           return 0;
138             }
139              
140             sub start_section
141             {
142 0     0 1   my $self = shift;
143              
144 0           my $title = shift;
145              
146 0           my $options;
147              
148 0 0         if (scalar(@_))
149             {
150 0           $options = shift;
151             }
152             else
153             {
154 0           $options = {};
155             }
156              
157 0           my $o = $self->{'out'};
158              
159 0           my $id_attr = "";
160 0 0         if (exists($options->{'id'}))
161             {
162 0           $id_attr = " id=\"" . $options->{'id'} . "\"";
163             }
164              
165 0           print {*{$o}} "";
  0            
  0            
166 0 0         if (exists($options->{'title_url'}))
167             {
168 0           print {*{$o}} "{'title_url'} . "\">" ;
  0            
  0            
169             }
170 0           $self->text($title);
171 0 0         if (exists($options->{'title_url'}))
172             {
173 0           print {*{$o}} "";
  0            
  0            
174             }
175 0           print {*{$o}} "" ;
  0            
  0            
176 0           print {*{$o}} "\n\n";
  0            
  0            
177              
178              
179 0           return 0;
180             }
181              
182             sub start_para
183             {
184 0     0 1   my $self = shift;
185              
186 0           print {*{$self->{'out'}}}("

\n");

  0            
  0            
187              
188 0           return 0;
189             }
190              
191             sub end_para
192             {
193 0     0 1   my $self = shift;
194              
195 0           print {*{$self->{'out'}}}("\n

\n");
  0            
  0            
196              
197 0           return 0;
198             }
199              
200             sub end_section
201             {
202 0     0 1   my $self = shift;
203              
204 0           print {*{$self->{'out'}}}("\n\n");
  0            
  0            
205              
206 0           return 0;
207             }
208              
209             sub start_document
210             {
211 0     0 1   my $self = shift;
212              
213 0           my $head_title = shift;
214              
215 0           my $body_title = shift;
216              
217 0           $head_title = _htmlize($head_title);
218              
219 0           my $o = $self->{'out'};
220              
221 0           print {*{$o}} <<"EOF" ;
  0            
  0            
222            
223            
224             PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
225             "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
226            
227            
228             $head_title
229            
230            
231            
232            
233             EOF
234              
235              
236 0           print {*{$o}}("

");

  0            
  0            
237              
238 0           $self->text($body_title);
239              
240 0           print {*{$o}}("\n\n");
  0            
  0            
241              
242 0           return 0;
243             }
244              
245             sub end_document
246             {
247 0     0 1   my $self = shift;
248              
249 0           print {*{$self->{'out'}}}(
  0            
  0            
250             "\n" .
251             "\n" .
252             "\n"
253             );
254              
255 0           return 0;
256             }
257              
258             sub horizontal_line
259             {
260 0     0 1   my $self = shift;
261              
262 0           print {*{$self->{'out'}}}("\n\n
\n\n");
  0            
  0            
263              
264 0           return 0;
265             }
266              
267             1;
268              
269             __END__