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 0.64
Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj@cpan.org)
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/Railsish/View.pm</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">lib/Railsish/View.pm</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c1">84.0%</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 Railsish::View;</td></tr>
<tr><td class="h">2</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Railsish-View-pm--subroutine.html#L2">1</a></div></td><td></td><td><div>74</div><div>4</div><div>11</div></td><td class="s">use Any::Moose;</td></tr>
<tr><td class="h">3</td><td colspan="7"></td></tr><tr><td class="h">4</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">has template_root =&gt; (</td></tr>
<tr><td class="h">5</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;is =&gt; &quot;ro&quot;,</td></tr>
<tr><td class="h">6</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;isa =&gt; &quot;Str&quot;,</td></tr>
<tr><td class="h">7</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;required =&gt; 1</td></tr>
<tr><td class="h">8</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
<tr><td class="h">9</td><td colspan="7"></td></tr><tr><td class="h">10</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Railsish-View-pm--subroutine.html#L10">1</a></div></td><td></td><td><div>79</div><div>4</div><div>5</div></td><td class="s">use Railsish::ViewHelpers ();</td></tr>
<tr><td class="h">11</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">require UNIVERSAL::require;</td></tr>
<tr><td class="h">12</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-Railsish-View-pm--subroutine.html#L12">1</a></div></td><td></td><td><div>10</div><div>3</div><div>13</div></td><td class="s">use File::Spec::Functions;</td></tr>
<tr><td class="h">13</td><td colspan="7"></td></tr><tr><td class="h">14</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub render {</td></tr>
<tr><td class="h">15</td><td><div class="c3">3</div></td><td></td><td></td><td><div class="c3"><a href="lib-Railsish-View-pm--subroutine.html#L15">3</a></div></td><td><div class="c0">0</div></td><td><div>25</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($self, @args) = @_;</td></tr>
<tr><td class="h">16</td><td colspan="7"></td></tr><tr><td class="h">17</td><td><div class="c3">3</div></td><td></td><td></td><td></td><td></td><td><div>13</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my %vars;</td></tr>
<tr><td class="h">18</td><td colspan="7"></td></tr><tr><td class="h">19</td><td><div class="c3">3</div></td><td><div class="c3" title="T/F"><a href="lib-Railsish-View-pm--branch.html#L19">100</a></div></td><td></td><td></td><td></td><td><div>22</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if (@args % 2 == 1) {</td></tr>
<tr><td class="h">20</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>8</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $thingy = shift @args;</td></tr>
<tr><td class="h">21</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>10</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%vars = @args;</td></tr>
<tr><td class="h">22</td><td colspan="7"></td></tr><tr><td class="h">23</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Railsish-View-pm--branch.html#L23">50</a></div></td><td></td><td></td><td></td><td><div>15</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( -f catfile($self-&gt;template_root, $thingy) ) {</td></tr>
<tr><td class="h">24</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;$vars{file} = $thingy;</td></tr>
<tr><td class="h">25</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">26</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {</td></tr>
<tr><td class="h">27</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>14</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$vars{file} = $self-&gt;resolve_template($thingy);</td></tr>
<tr><td class="h">28</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">29</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;} else {</td></tr>
<tr><td class="h">30</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>7</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%vars = @args;</td></tr>
<tr><td class="h">31</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">32</td><td colspan="7"></td></tr><tr><td class="h">33</td><td><div class="c3">3</div></td><td><div class="c0" title="-/F"><a href="lib-Railsish-View-pm--branch.html#L33">50</a></div></td><td></td><td></td><td></td><td><div>53</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;unless ( $vars{file} =~ m/\.(\w+)$/ ) {</td></tr>
<tr><td class="h">34</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;die &quot;Don&#39;t know how to render $vars{file}\n&quot;;</td></tr>
<tr><td class="h">35</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">36</td><td><div class="c3">3</div></td><td></td><td></td><td></td><td></td><td><div>24</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $view_class = &quot;Railsish::View::$1&quot;;</td></tr>
<tr><td class="h">37</td><td><div class="c3">3</div></td><td><div class="c0" title="-/F"><a href="lib-Railsish-View-pm--branch.html#L37">50</a></div></td><td></td><td></td><td></td><td><div>59</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$view_class-&gt;require or die $@;</td></tr>
<tr><td class="h">38</td><td colspan="7"></td></tr><tr><td class="h">39</td><td><div class="c3">3</div></td><td></td><td></td><td></td><td></td><td><div>176</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $view_obj = $view_class-&gt;new(</td></tr>
<tr><td class="h">40</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template_root =&gt; $self-&gt;template_root</td></tr>
<tr><td class="h">41</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">42</td><td colspan="7"></td></tr><tr><td class="h">43</td><td><div class="c3">3</div></td><td></td><td></td><td></td><td></td><td><div>31</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $output = $view_obj-&gt;render(%vars);</td></tr>
<tr><td class="h">44</td><td colspan="7"></td></tr><tr><td class="h">45</td><td><div class="c3">3</div></td><td></td><td></td><td></td><td></td><td><div>11</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return $output;</td></tr>
<tr><td class="h">46</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">47</td><td colspan="7"></td></tr><tr><td class="h">48</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub resolve_template {</td></tr>
<tr><td class="h">49</td><td><div class="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-Railsish-View-pm--subroutine.html#L49">2</a></div></td><td><div class="c0">0</div></td><td><div>14</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($self, $thingy) = @_;</td></tr>
<tr><td class="h">50</td><td colspan="7"></td></tr><tr><td class="h">51</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>15</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $dir = $self-&gt;template_root;</td></tr>
<tr><td class="h">52</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>13</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $p = quotemeta($self-&gt;template_root) . &quot;/${thingy}.*.*&quot;;</td></tr>
<tr><td class="h">53</td><td colspan="7"></td></tr><tr><td class="h">54</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;# XXX: TODO: Decide the precedence of multiple matches.</td></tr>
<tr><td class="h">55</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>18</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my @files = glob($p);</td></tr>
<tr><td class="h">56</td><td colspan="7"></td></tr><tr><td class="h">57</td><td><div class="c3">2</div></td><td><div class="c0" title="-/F"><a href="lib-Railsish-View-pm--branch.html#L57">50</a></div></td><td></td><td></td><td></td><td><div>1114</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;die &quot;Unknown template: $thingy&quot; unless @files;</td></tr>
<tr><td class="h">58</td><td colspan="7"></td></tr><tr><td class="h">59</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>8</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $file = $files[0];</td></tr>
<tr><td class="h">60</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>60</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$file =~  s/^$dir\///;</td></tr>
<tr><td class="h">61</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td></td><td><div>17</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return $file;</td></tr>
<tr><td class="h">62</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">63</td><td colspan="7"></td></tr><tr><td class="h">64</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">__PACKAGE__-&gt;meta-&gt;make_immutable;</td></tr>
<tr><td class="h">65</td><td colspan="7"></td></tr><tr><td class="h">66</td><td colspan="7"></td></tr><tr><td class="h">67 - 85</td><td colspan="6"></td><td class="s"><pre>=head1 SYNOPSIS

    # Explicit
    Railsish::View-&gt;render(template =&gt; &quot;foo/bar.html.tt2&quot;, %vars);

    # Smart
    Railsish::View-&gt;render(&quot;foo/bar&quot;, %vars);

=head1 DESCRIPTION

Convention:

    file comes with suffixes, template does not.

    file: &quot;foo/bar.html.tt2&quot;
    template &quot;foo/bar&quot;


=cut</pre></td></tr>
</table>
</body>
</html>