The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
This file was generated by Devel::Cover Version 1.26
Devel::Cover is copyright 2001-2012, Paul Johnson (paul@pjcj.net)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
-->
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
    <meta http-equiv="Content-Language" content="en-us"></meta>
    <link rel="stylesheet" type="text/css" href="cover.css"></link>
    <link rel="stylesheet" type="text/css" href="cover.css"></link>
    <title>File Coverage: lib/Yukki/Role/Savable.pm</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">lib/Yukki/Role/Savable.pm</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c0">64.1%</td></tr>
</table>
<div><br/></div>
<table>
<tr><th>line</th><th>stmt</th><th>bran</th><th>cond</th><th>sub</th><th>pod</th><th>time</th><th>code</th></tr>
<tr><td class="h">1</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">package Yukki::Role::Savable;</td></tr>
<tr><td class="h">2</td><td colspan="7"></td></tr><tr><td class="h">3</td><td><div class="c3">4</div><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L3">4</a></div></td><td></td><td><div>14275</div><div>11</div></td><td class="s">use v5.24;</td></tr>
<tr><td class="h">4</td><td><div class="c3">4</div><div class="c3">4</div><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L4">4</a></div></td><td></td><td><div>13</div><div>19</div><div>18</div></td><td class="s">use utf8;</td></tr>
<tr><td class="h">5</td><td><div class="c3">4</div><div class="c3">4</div><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L5">4</a></div></td><td></td><td><div>53</div><div>5</div><div>19</div></td><td class="s">use Moo::Role;</td></tr>
<tr><td class="h">6</td><td colspan="7"></td></tr><tr><td class="h">7</td><td><div class="c3">4</div><div class="c3">4</div><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L7">4</a></div></td><td></td><td><div>1022</div><div>5</div><div>155</div></td><td class="s">use Scalar::Util qw( blessed );</td></tr>
<tr><td class="h">8</td><td><div class="c3">4</div><div class="c3">4</div><div class="c3">4</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L8">4</a></div></td><td></td><td><div>1425</div><div>11385</div><div>450</div></td><td class="s">use YAML qw( Dump Load );</td></tr>
<tr><td class="h">9</td><td colspan="7"></td></tr><tr><td class="h">10</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># ABSTRACT: Provides a mechanism for YAML-izing objects</td></tr>
<tr><td class="h">11</td><td colspan="7"></td></tr><tr><td class="h">12 - 44</td><td colspan="6"></td><td class="s"><pre>=head1 SYNOPSIS

&nbsp;&nbsp;&nbsp;&nbsp;package Yukki::Things;
&nbsp;&nbsp;&nbsp;&nbsp;use v5.24;
&nbsp;&nbsp;&nbsp;&nbsp;use Moo;

&nbsp;&nbsp;&nbsp;&nbsp;with &#39;Yukki::Role::Savable&#39;;

&nbsp;&nbsp;&nbsp;&nbsp;has foo =&gt; ( is =&gt; &#39;ro&#39; );
&nbsp;&nbsp;&nbsp;&nbsp;has bar =&gt; ( is =&gt; &#39;ro&#39; );

&nbsp;&nbsp;&nbsp;&nbsp;sub savable_attributes { qw( foo bar ) }

&nbsp;&nbsp;&nbsp;&nbsp;my $things = Yukki::Things-&gt;new(foo =&gt; 1, bar =&gt; 2);
&nbsp;&nbsp;&nbsp;&nbsp;path(&#39;file.yaml&#39;)-&gt;spew_utf8($things-&gt;dump_yaml);

&nbsp;&nbsp;&nbsp;&nbsp;my $things = Yukki::Things-&gt;load_yaml(path(&#39;file.yaml&#39;)-&gt;slurp_utf8);
&nbsp;&nbsp;&nbsp;&nbsp;say $things-&gt;foo; #&gt; 1
&nbsp;&nbsp;&nbsp;&nbsp;say $things-&gt;bar; #&gt; 2

=head1 DESCRIPTION

This is intended to provide L&lt;Yukki&gt; with a nice, neat way to save and load some configuration objects in a standard way.

=head1 REQUIRED METHODS

=head2 savable_attributes

&nbsp;&nbsp;&nbsp;&nbsp;my @attr = $obj-&gt;savable_attributes;

Returns the list of attributes to save in the YAML.

=cut</pre></td></tr>
<tr><td class="h">45</td><td colspan="7"></td></tr><tr><td class="h">46</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">requires &#39;savable_attributes&#39;;</td></tr>
<tr><td class="h">47</td><td colspan="7"></td></tr><tr><td class="h">48 - 56</td><td colspan="6"></td><td class="s"><pre>=head1 METHODS

=head2 dump_yaml

&nbsp;&nbsp;&nbsp;&nbsp;my $yaml_text = $obj-&gt;dump_yaml;

This converts the object to YAML and returns the ext.

=cut</pre></td></tr>
<tr><td class="h">57</td><td colspan="7"></td></tr><tr><td class="h">58</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub dump_yaml {</td></tr>
<tr><td class="h">59</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L59">0</a></div></td><td><div class="c3">1</div></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">60</td><td colspan="7"></td></tr><tr><td class="h">61</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my %output;</td></tr>
<tr><td class="h">62</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;for my $attr ($self-&gt;savable_attributes) {</td></tr>
<tr><td class="h">63</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $v = $self-&gt;$attr;</td></tr>
<tr><td class="h">64</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-Yukki-Role-Savable-pm--branch.html#L64">0</a></div></td><td><div class="c0"><a href="lib-Yukki-Role-Savable-pm--condition.html#L64">0</a></div></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (blessed $v &amp;&amp; $v-&gt;does(&#39;Yukki::Role::Savable&#39;)) {</td></tr>
<tr><td class="h">65</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$v = $v-&gt;dump_yaml;</td></tr>
<tr><td class="h">66</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">67</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output{ $attr } = $v;</td></tr>
<tr><td class="h">68</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">69</td><td colspan="7"></td></tr><tr><td class="h">70</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td><div>0</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return Dump(\%output);</td></tr>
<tr><td class="h">71</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">72</td><td colspan="7"></td></tr><tr><td class="h">73 - 79</td><td colspan="6"></td><td class="s"><pre>=head2 load_yaml

&nbsp;&nbsp;&nbsp;&nbsp;my $obj = $class-&gt;load_yaml($yaml_text);

This constructs a new class from the data loaded from the given YAML text.

=cut</pre></td></tr>
<tr><td class="h">80</td><td colspan="7"></td></tr><tr><td class="h">81</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub load_yaml {</td></tr>
<tr><td class="h">82</td><td><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Yukki-Role-Savable-pm--subroutine.html#L82">1</a></div></td><td><div class="c3">1</div></td><td><div>138</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($class, $yaml) = @_;</td></tr>
<tr><td class="h">83</td><td colspan="7"></td></tr><tr><td class="h">84</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>5</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $input = Load($yaml);</td></tr>
<tr><td class="h">85</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>2510</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$class-&gt;new($input);</td></tr>
<tr><td class="h">86</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">87</td><td colspan="7"></td></tr><tr><td class="h">88</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">1;</td></tr>
</table>
</body>
</html>