File Coverage

blib/lib/Kwim/Byte.pm
Criterion Covered Total %
statement 31 32 96.8
branch 12 16 75.0
condition n/a
subroutine 7 7 100.0
pod 0 4 0.0
total 50 59 84.7


line stmt bran cond sub pod time code
1 2     2   2135 use strict; use warnings;
  2     2   4  
  2         66  
  2         10  
  2         269  
  2         96  
2             package Kwim::Byte;
3              
4 2     2   12 use base 'Kwim::Markup';
  2         20  
  2         1465  
5             # use XXX -with => 'YAML::XS';
6              
7             sub render_node {
8 56     56 0 104 my ($self, $hash) = @_;
9 56         162 my ($tag, $node) = each %$hash;
10 56 100       479 if ($self->can("render_$tag")) {
11 4         12 my $method = "render_$tag";
12 4         24 return $self->$method($node);
13             }
14 52 100       115 if (not defined $node) {
15 5         22 "=$tag\n"
16             }
17             else {
18 47         169 "+$tag\n" . $self->render($node) . "-$tag\n";
19             }
20             }
21              
22             sub render_text {
23 54     54 0 90 my ($self, $node) = @_;
24 54 100       147 return '' unless length $node;
25 53         115 $node =~ s/\n/\\n/g;
26 53         192 " $node\n";
27             }
28              
29             sub render_title {
30 1     1 0 3 my ($self, $node) = @_;
31 1 50       6 my ($name, $abstract) = ref $node ? @$node : (undef, $node);
32 1 50       4 $name = @$name > 1 ? $self->render($name) : $name->[0];
33 1 50       4 if (defined $abstract) {
34 1 50       6 $abstract = @$abstract > 1 ? $self->render($abstract) : $abstract->[0];
35 1         7 "+title\n $name\n-title\n+para\n $abstract\n-para\n";
36             }
37             else {
38 0         0 "+title\n $name\n-title\n";
39             }
40             }
41              
42             sub render_hyper {
43 3     3 0 6 my ($self, $node) = @_;
44 3         8 my ($link, $text) = @{$node}{qw(link text)};
  3         12  
45 3 100       24 (length $text == 0)
46             ? "=hyper $link\n"
47             : "+hyper $link\n $text\n-hyper\n";
48             }
49              
50             1;