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.6';
26 8     8   1273 use strict;
  8         22  
  8         245  
27 8     8   126 use warnings;
  8         22  
  8         251  
28 8     8   45 use Moose;
  8         15  
  8         56  
29 8     8   52853 use namespace::autoclean;
  8         22  
  8         94  
30 8     8   4633 use YAML ();
  8         46221  
  8         250  
31              
32              
33 8     8   73 use constant type => 'yml';
  8         18  
  8         876  
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   10 my ($self, $content) = @_;
46 3         16 my $data = YAML::Load( $content );
47 3         6872 $self->_set_data( $data );
48 3         10 return;
49             }
50              
51              
52 8     8   71 no Moose;
  8         20  
  8         64  
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