File Coverage

blib/lib/EBook/EPUB/Metadata/DCItem.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1             # Copyright (c) 2009, 2010 Oleksandr Tymoshenko <gonzo@bluezbox.com>
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::Metadata::DCItem;
25 1     1   2648 use Moose;
  0            
  0            
26              
27             #
28             # Helper class for DC metadata items. Just contains name, value and attributes.
29             # values goes as CDATA.
30             # End-user should not use this module directly
31             #
32              
33             has [qw/name value/] => (isa => 'Str', is => 'rw');
34             has attributes => (
35             traits => ['Array'],
36             isa => 'ArrayRef[Str]',
37             is => 'ro',
38             default => sub { [] },
39             );
40              
41             sub encode
42             {
43             my ($self, $writer) = @_;
44             $writer->dataElement($self->name, $self->value,
45             @{$self->attributes},
46             );
47             my %attr = @{$self->attributes()};
48             }
49              
50             # Override default - set not reference value but
51             # reference content
52             sub copy_attributes
53             {
54             my ($self, $ref) = @_;
55             @{$self->attributes()} = @{$ref};
56             }
57              
58             no Moose;
59             __PACKAGE__->meta->make_immutable;
60              
61             1;