File Coverage

blib/lib/EBook/EPUB/Lite/Guide.pm
Criterion Covered Total %
statement 13 21 61.9
branch 1 2 50.0
condition n/a
subroutine 5 6 83.3
pod 3 3 100.0
total 22 32 68.7


line stmt bran cond sub pod time code
1             # Copyright (c) 2009, 2010 Oleksandr Tymoshenko
2             # All rights reserved.
3              
4             # Redistribution and use in source and binary forms, with or without
5             # modification, are permitted provided that the following conditions
6             # are met:
7             # 1. Redistributions of source code must retain the above copyright
8             # notice, this list of conditions and the following disclaimer.
9             # 2. Redistributions in binary form must reproduce the above copyright
10             # notice, this list of conditions and the following disclaimer in the
11             # documentation and/or other materials provided with the distribution.
12              
13             # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14             # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15             # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16             # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17             # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18             # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19             # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20             # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21             # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22             # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23             # SUCH DAMAGE.
24             package EBook::EPUB::Lite::Guide;
25 4     4   19 use Moo;
  4         6  
  4         28  
26 4     4   1012 use Types::Standard qw/ArrayRef Object/;
  4         8  
  4         31  
27 4     4   3957 use EBook::EPUB::Lite::Guide::Reference;
  4         9  
  4         893  
28              
29             has references => (
30             is => 'ro',
31             isa => ArrayRef[Object],
32             default => sub { [] },
33             );
34              
35             sub all_references {
36 2     2 1 2 return @{ shift->references };
  2         14  
37             }
38              
39             sub encode
40             {
41 2     2 1 5 my ($self, $writer) = @_;
42             # Only if there are any items
43 2 50       7 if ($self->all_references) {
44 0           $writer->startTag("guide");
45 0           foreach my $ref ($self->all_references()) {
46 0           $ref->encode($writer);
47             }
48 0           $writer->endTag("guide");
49             }
50             }
51              
52             sub add_reference
53             {
54 0     0 1   my ($self, @args) = @_;
55 0           my $ref = EBook::EPUB::Lite::Guide::Reference->new(@args);
56 0           push @{$self->references()}, $ref;
  0            
57             }
58              
59             1;
60              
61             __END__