File Coverage

blib/lib/Game/Asset/MultiExample.pm
Criterion Covered Total %
statement 33 34 97.0
branch n/a
condition n/a
subroutine 9 10 90.0
pod 0 1 0.0
total 42 45 93.3


line stmt bran cond sub pod time code
1             # Copyright (c) 2016 Timm Murray
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 are met:
6             #
7             # * Redistributions of source code must retain the above copyright notice,
8             # this list of conditions and the following disclaimer.
9             # * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14             # AND 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 COPYRIGHT HOLDER OR CONTRIBUTORS BE
17             # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18             # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19             # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20             # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21             # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22             # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23             # POSSIBILITY OF SUCH DAMAGE.
24             package Game::Asset::MultiExample;
25             $Game::Asset::MultiExample::VERSION = '0.4';
26 7     7   1069 use strict;
  7         16  
  7         243  
27 7     7   35 use warnings;
  7         15  
  7         174  
28 7     7   31 use Moose;
  7         29  
  7         42  
29 7     7   41928 use namespace::autoclean;
  7         17  
  7         92  
30 7     7   585 use Game::Asset::PlainText;
  7         17  
  7         132  
31 7     7   34 use Game::Asset::Null;
  7         12  
  7         236  
32              
33              
34 7     7   34 use constant type => 'multi_example';
  7         15  
  7         1359  
35              
36             with 'Game::Asset::Multi';
37              
38             has 'txt' => (
39             is => 'ro',
40             isa => 'Game::Asset::PlainText',
41             writer => '_set_txt',
42             );
43             has 'null' => (
44             is => 'ro',
45             isa => 'Game::Asset::Null',
46             writer => '_set_null',
47             );
48              
49              
50 0     0 0 0 sub content { $_[0]->_orig_content }
51              
52             sub _process_content
53             {
54 1     1   45 my ($self, $content) = @_;
55 1         62 $self->_orig_content( $content );
56              
57 1         27 my $args = {
58             name => $self->name,
59             full_name => $self->full_name,
60             };
61              
62 1         26 my $txt = Game::Asset::PlainText->new( $args );
63 1         28 my $null = Game::Asset::Null->new( $args );
64 1         6 $_->process_content( $content ) for $txt, $null;
65              
66 1         47 $self->_set_txt( $txt );
67 1         27 $self->_set_null( $null );
68 1         3 return;
69             }
70              
71              
72 7     7   44 no Moose;
  7         13  
  7         59  
73             __PACKAGE__->meta->make_immutable;
74             1;
75             __END__
76