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.6';
26 8     8   1134 use strict;
  8         21  
  8         290  
27 8     8   51 use warnings;
  8         22  
  8         251  
28 8     8   48 use Moose;
  8         19  
  8         59  
29 8     8   63819 use namespace::autoclean;
  8         26  
  8         121  
30 8     8   755 use Game::Asset::PlainText;
  8         28  
  8         348  
31 8     8   59 use Game::Asset::Null;
  8         22  
  8         255  
32              
33              
34 8     8   51 use constant type => 'multi_example';
  8         20  
  8         2018  
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   5 my ($self, $content) = @_;
55 1         43 $self->_orig_content( $content );
56              
57 1         40 my $args = {
58             name => $self->name,
59             full_name => $self->full_name,
60             };
61              
62 1         45 my $txt = Game::Asset::PlainText->new( $args );
63 1         48 my $null = Game::Asset::Null->new( $args );
64 1         12 $_->process_content( $content ) for $txt, $null;
65              
66 1         49 $self->_set_txt( $txt );
67 1         48 $self->_set_null( $null );
68 1         6 return;
69             }
70              
71              
72 8     8   64 no Moose;
  8         21  
  8         92  
73             __PACKAGE__->meta->make_immutable;
74             1;
75             __END__
76