File Coverage

blib/lib/BBCode/Tag/CODE.pm
Criterion Covered Total %
statement 28 30 93.3
branch 4 6 66.6
condition n/a
subroutine 9 10 90.0
pod 6 6 100.0
total 47 52 90.3


line stmt bran cond sub pod time code
1             # $Id: CODE.pm 284 2006-12-01 07:51:49Z chronos $
2             package BBCode::Tag::CODE;
3 2     2   12 use base qw(BBCode::Tag::Block);
  2         4  
  2         197  
4 2     2   11 use BBCode::Util qw(encodeHTML multilineText);
  2         4  
  2         117  
5 2     2   10 use strict;
  2         4  
  2         69  
6 2     2   11 use warnings;
  2         3  
  2         1100  
7             our $VERSION = '0.34';
8              
9             sub BodyPermitted($):method {
10 8     8 1 34 return 1;
11             }
12              
13             sub BodyTags($):method {
14 6     6 1 23 return qw(:TEXT URL EMAIL);
15             }
16              
17             sub NamedParams($):method {
18 4     4 1 15 return qw(LANG);
19             }
20              
21             sub RequiredParams($):method {
22 0     0 1 0 return ();
23             }
24              
25             sub validateParam($$$):method {
26 2     2 1 7 my($this,$param,$val) = @_;
27 2 50       14 if($param eq 'LANG') {
28 2         6 $val =~ s/_/-/g;
29 2 100       14 if($val =~ /^ \w+ (?: - \w+ )* $/x) {
30 1         5 return $val;
31             } else {
32 1         45 die qq(Invalid value "$val" for [CODE LANG]);
33             }
34             }
35 0         0 return $this->SUPER::validateParam($param,$val);
36             }
37              
38             sub toHTML($):method {
39 1     1 1 3 my $this = shift;
40 1         11 my $pfx = $this->parser->css_prefix;
41              
42 1         5 my $lang = $this->param('LANG');
43 1         9 my $body = $this->bodyHTML;
44 1         6 $body =~ s#
$##mg;
45 1         4 $body =~ s#
#\n#g;
46 1 50       11 return multilineText
47             qq(
\n),
48             qq(
), (defined $lang ? encodeHTML(ucfirst "$lang ") : ""), qq(Code:
\n),
49             qq(
\n), 
50             qq($body\n),
51             qq(\n),
52             qq(\n);
53             }
54              
55             1;