File Coverage

blib/lib/EBook/EPUB/Lite/Manifest.pm
Criterion Covered Total %
statement 19 22 86.3
branch n/a
condition n/a
subroutine 5 6 83.3
pod 3 3 100.0
total 27 31 87.1


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::Manifest;
25              
26 4     4   20 use Moo;
  4         27  
  4         37  
27 4     4   1095 use Types::Standard qw/ArrayRef Object/;
  4         7  
  4         39  
28 4     4   4342 use EBook::EPUB::Lite::Manifest::Item;
  4         12  
  4         887  
29              
30             has items => (
31             is => 'ro',
32             isa => ArrayRef[Object],
33             default => sub { [] },
34             );
35              
36             sub all_items {
37 0     0 1 0 my $self = shift;
38 0         0 return @{$self->items};
  0         0  
39             }
40              
41             sub encode
42             {
43 2     2 1 4 my ($self, $writer) = @_;
44 2         7 $writer->startTag("manifest");
45 2         63 foreach my $item (@{$self->items()}) {
  2         11  
46 11         4208 $item->encode($writer);
47             }
48 2         295 $writer->endTag("manifest");
49             }
50              
51             sub add_item
52             {
53 11     11 1 36 my ($self, @args) = @_;
54 11         321 my $item = EBook::EPUB::Lite::Manifest::Item->new(@args);
55 11         4732 push @{$self->items()}, $item;
  11         63  
56             }
57              
58             1;
59              
60             __END__