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.6806';
3 1     1   5 use strict;
  1         2  
  1         23  
4 1     1   4 use warnings;
  1         2  
  1         20  
5              
6 1     1   4 use vars qw(@ISA);
  1         2  
  1         28  
7              
8 1     1   337 use Mail::LMLM::Render;
  1         2  
  1         917  
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 0           return 0;
179             }
180              
181             sub start_para
182             {
183 0     0 1   my $self = shift;
184              
185 0           print { *{ $self->{'out'} } } ("

\n");

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

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

");

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