File Coverage

blib/lib/Game/Asset/YAML.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 33 33 100.0


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::YAML;
25             $Game::Asset::YAML::VERSION = '0.4';
26 7     7   1069 use strict;
  7         16  
  7         200  
27 7     7   36 use warnings;
  7         14  
  7         195  
28 7     7   35 use Moose;
  7         15  
  7         42  
29 7     7   41979 use namespace::autoclean;
  7         14  
  7         55  
30 7     7   3415 use YAML ();
  7         36457  
  7         160  
31              
32              
33 7     7   43 use constant type => 'yml';
  7         15  
  7         704  
34              
35             with 'Game::Asset::Type';
36              
37             has 'data' => (
38             is => 'ro',
39             isa => 'Ref',
40             writer => '_set_data',
41             );
42              
43             sub _process_content
44             {
45 3     3   9 my ($self, $content) = @_;
46 3         10 my $data = YAML::Load( $content );
47 3         5369 $self->_set_data( $data );
48 3         7 return;
49             }
50              
51              
52 7     7   44 no Moose;
  7         15  
  7         41  
53             __PACKAGE__->meta->make_immutable;
54             1;
55             __END__
56              
57              
58             =head1 NAME
59              
60             Game::Asset::YAML - A game asset that's parsed by YAML into a Perl data structure
61              
62             =head1 DESCRIPTION
63              
64             Handles an asset that's formatted in YAML.
65              
66             =head1 METHODS
67              
68             =head2 data
69              
70             Returns the Perl data structure represented by the YAML.
71              
72             =cut