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.5';
26 7     7   1455 use strict;
  7         16  
  7         212  
27 7     7   32 use warnings;
  7         17  
  7         269  
28 7     7   39 use Moose;
  7         17  
  7         49  
29 7     7   44532 use namespace::autoclean;
  7         19  
  7         103  
30 7     7   658 use Game::Asset::PlainText;
  7         16  
  7         145  
31 7     7   31 use Game::Asset::Null;
  7         15  
  7         242  
32              
33              
34 7     7   39 use constant type => 'multi_example';
  7         15  
  7         1549  
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   4 my ($self, $content) = @_;
55 1         25 $self->_orig_content( $content );
56              
57 1         23 my $args = {
58             name => $self->name,
59             full_name => $self->full_name,
60             };
61              
62 1         27 my $txt = Game::Asset::PlainText->new( $args );
63 1         38 my $null = Game::Asset::Null->new( $args );
64 1         8 $_->process_content( $content ) for $txt, $null;
65              
66 1         28 $self->_set_txt( $txt );
67 1         28 $self->_set_null( $null );
68 1         4 return;
69             }
70              
71              
72 7     7   45 no Moose;
  7         14  
  7         68  
73             __PACKAGE__->meta->make_immutable;
74             1;
75             __END__
76