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.79
Devel::Cover is copyright 2001-2011, 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/App/ArchiveDevelCover.pm</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">lib/App/ArchiveDevelCover.pm</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c0">18.5%</td></tr>
</table>
<div><br/></div>
<table>
<tr><th>line</th><th>stmt</th><th>bran</th><th>cond</th><th>sub</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 class="s">package App::ArchiveDevelCover;</td></tr>
<tr><td class="h">2</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div><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-App-ArchiveDevelCover-pm--subroutine.html#L2">1</a></div><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L2">1</a></div></td><td><div>65861</div><div>5</div><div>33</div><div>5</div><div>3</div><div>77</div></td><td class="s">use 5.010;</td></tr>
<tr><td class="h">3</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-App-ArchiveDevelCover-pm--subroutine.html#L3">1</a></div></td><td><div>472</div><div>391002</div><div>12</div></td><td class="s">use Moose;</td></tr>
<tr><td class="h">4</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-App-ArchiveDevelCover-pm--subroutine.html#L4">1</a></div></td><td><div>42126</div><div>352675</div><div>23</div></td><td class="s">use MooseX::Types::Path::Class;</td></tr>
<tr><td class="h">5</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-App-ArchiveDevelCover-pm--subroutine.html#L5">1</a></div></td><td><div>1208</div><div>211378</div><div>23</div></td><td class="s">use DateTime;</td></tr>
<tr><td class="h">6</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-App-ArchiveDevelCover-pm--subroutine.html#L6">1</a></div></td><td><div>5703</div><div>1806</div><div>49</div></td><td class="s">use File::Copy;</td></tr>
<tr><td class="h">7</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-App-ArchiveDevelCover-pm--subroutine.html#L7">1</a></div></td><td><div>12219</div><div>17043</div><div>9</div></td><td class="s">use HTML::TableExtract;</td></tr>
<tr><td class="h">8</td><td colspan="6"></td></tr><tr><td class="h">9</td><td></td><td></td><td></td><td></td><td></td><td class="s"># ABSTRACT: Archive Devel::Cover reports</td></tr>
<tr><td class="h">10</td><td></td><td></td><td></td><td></td><td></td><td class="s">our $VERSION = &#39;1.000&#39;;</td></tr>
<tr><td class="h">11</td><td colspan="6"></td></tr><tr><td class="h">12</td><td></td><td></td><td></td><td></td><td></td><td class="s">with &#39;MooseX::Getopt&#39;;</td></tr>
<tr><td class="h">13</td><td colspan="6"></td></tr><tr><td class="h">14</td><td></td><td></td><td></td><td></td><td></td><td class="s">has [qw(from to)] =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;Path::Class::Dir&#39;,coerce=&gt;1,required=&gt;1,);</td></tr>
<tr><td class="h">15</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;project&#39; =&gt; (is =&gt; &#39;ro&#39;, isa=&gt;&#39;Str&#39;);</td></tr>
<tr><td class="h">16</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;coverage_html&#39; =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;Path::Class::File&#39;,lazy_build=&gt;1,traits=&gt; [&#39;NoGetopt&#39;]);</td></tr>
<tr><td class="h">17</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_coverage_html {</td></tr>
<tr><td class="h">18</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L18">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">19</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L19">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if (-e $self-&gt;from-&gt;file(&#39;coverage.html&#39;)) {</td></tr>
<tr><td class="h">20</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $self-&gt;from-&gt;file(&#39;coverage.html&#39;);</td></tr>
<tr><td class="h">21</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">22</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">23</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say &quot;Cannot find &#39;coverage.html&#39; in &quot;.$self-&gt;from.&#39;. Aborting&#39;;</td></tr>
<tr><td class="h">24</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;</td></tr>
<tr><td class="h">25</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">26</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">27</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;runtime&#39; =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;DateTime&#39;,lazy_build=&gt;1,traits=&gt; [&#39;NoGetopt&#39;],);</td></tr>
<tr><td class="h">28</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_runtime {</td></tr>
<tr><td class="h">29</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L29">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">30</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return DateTime-&gt;from_epoch(epoch=&gt;$self-&gt;coverage_html-&gt;stat-&gt;mtime);</td></tr>
<tr><td class="h">31</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">32</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;archive_html&#39; =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;Path::Class::File&#39;,lazy_build=&gt;1,traits=&gt; [&#39;NoGetopt&#39;]);</td></tr>
<tr><td class="h">33</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_archive_html {</td></tr>
<tr><td class="h">34</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L34">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">35</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L35">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;unless (-e $self-&gt;to-&gt;file(&#39;index.html&#39;)) {</td></tr>
<tr><td class="h">36</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $tpl = $self-&gt;_archive_template;</td></tr>
<tr><td class="h">37</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $fh = $self-&gt;to-&gt;file(&#39;index.html&#39;)-&gt;openw;</td></tr>
<tr><td class="h">38</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print $fh $tpl;</td></tr>
<tr><td class="h">39</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close $fh;</td></tr>
<tr><td class="h">40</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">41</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return $self-&gt;to-&gt;file(&#39;index.html&#39;);</td></tr>
<tr><td class="h">42</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">43</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;archive_db&#39; =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;Path::Class::File&#39;,lazy_build=&gt;1,traits=&gt; [&#39;NoGetopt&#39;]);</td></tr>
<tr><td class="h">44</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_archive_db {</td></tr>
<tr><td class="h">45</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L45">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">46</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return $self-&gt;to-&gt;file(&#39;archive_db&#39;);</td></tr>
<tr><td class="h">47</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">48</td><td></td><td></td><td></td><td></td><td></td><td class="s">has &#39;previous_stats&#39; =&gt; (is=&gt;&#39;ro&#39;,isa=&gt;&#39;ArrayRef&#39;,lazy_build=&gt;1,traits=&gt;[&#39;NoGetopt&#39;]);</td></tr>
<tr><td class="h">49</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _build_previous_stats {</td></tr>
<tr><td class="h">50</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L50">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">51</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L51">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if (-e $self-&gt;archive_db) {</td></tr>
<tr><td class="h">52</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $dbr = $self-&gt;archive_db-&gt;openr;</td></tr>
<tr><td class="h">53</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my @data = &lt;$dbr&gt;; # probably better to just get last line...</td></tr>
<tr><td class="h">54</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my @prev = split(/;/,$data[-1]);</td></tr>
<tr><td class="h">55</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return \@prev;</td></tr>
<tr><td class="h">56</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">57</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">58</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return [undef,0,0,0];</td></tr>
<tr><td class="h">59</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">60</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">61</td><td colspan="6"></td></tr><tr><td class="h">62</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub run {</td></tr>
<tr><td class="h">63</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L63">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">64</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$self-&gt;archive;</td></tr>
<tr><td class="h">65</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$self-&gt;update_index;</td></tr>
<tr><td class="h">66</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">67</td><td colspan="6"></td></tr><tr><td class="h">68</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub archive {</td></tr>
<tr><td class="h">69</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L69">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">70</td><td colspan="6"></td></tr><tr><td class="h">71</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $from = $self-&gt;from;</td></tr>
<tr><td class="h">72</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $target = $self-&gt;to-&gt;subdir($self-&gt;runtime-&gt;iso8601);</td></tr>
<tr><td class="h">73</td><td colspan="6"></td></tr><tr><td class="h">74</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L74">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if (-e $target) {</td></tr>
<tr><td class="h">75</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say &quot;This coverage report has already been archived.&quot;;</td></tr>
<tr><td class="h">76</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;</td></tr>
<tr><td class="h">77</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">78</td><td colspan="6"></td></tr><tr><td class="h">79</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$target-&gt;mkpath;</td></tr>
<tr><td class="h">80</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $target_string = $target-&gt;stringify;</td></tr>
<tr><td class="h">81</td><td colspan="6"></td></tr><tr><td class="h">82</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;while (my $f = $from-&gt;next) {</td></tr>
<tr><td class="h">83</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L83">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next unless $f=~/\.(html|css)$/;</td></tr>
<tr><td class="h">84</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L84">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy($f-&gt;stringify,$target_string) || die &quot;Cannot copy $from to $target_string: $!&quot;;</td></tr>
<tr><td class="h">85</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">86</td><td colspan="6"></td></tr><tr><td class="h">87</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;say &quot;archived coverage reports at $target_string&quot;;</td></tr>
<tr><td class="h">88</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">89</td><td colspan="6"></td></tr><tr><td class="h">90</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub update_index {</td></tr>
<tr><td class="h">91</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L91">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">92</td><td colspan="6"></td></tr><tr><td class="h">93</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $te = HTML::TableExtract-&gt;new( headers =&gt; [qw(stm sub total)] );</td></tr>
<tr><td class="h">94</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$te-&gt;parse(scalar $self-&gt;coverage_html-&gt;slurp);</td></tr>
<tr><td class="h">95</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $rows =$te-&gt;rows;</td></tr>
<tr><td class="h">96</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $last_row = $rows-&gt;[-1];</td></tr>
<tr><td class="h">97</td><td colspan="6"></td></tr><tr><td class="h">98</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$self-&gt;update_archive_html($last_row);</td></tr>
<tr><td class="h">99</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$self-&gt;update_archive_db($last_row);</td></tr>
<tr><td class="h">100</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">101</td><td colspan="6"></td></tr><tr><td class="h">102</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub update_archive_html {</td></tr>
<tr><td class="h">103</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L103">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($self, $last_row) = @_;</td></tr>
<tr><td class="h">104</td><td colspan="6"></td></tr><tr><td class="h">105</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $prev_stats = $self-&gt;previous_stats;</td></tr>
<tr><td class="h">106</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $runtime = $self-&gt;runtime;</td></tr>
<tr><td class="h">107</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $date = $runtime-&gt;ymd(&#39;-&#39;).&#39; &#39;.$runtime-&gt;hms;</td></tr>
<tr><td class="h">108</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $link = $runtime-&gt;iso8601.&quot;/coverage.html&quot;;</td></tr>
<tr><td class="h">109</td><td colspan="6"></td></tr><tr><td class="h">110</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $new_stat = qq{\n&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;$link&quot;&gt;$date&lt;/a&gt;&lt;/td&gt;};</td></tr>
<tr><td class="h">111</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;foreach my $val (@$last_row) {</td></tr>
<tr><td class="h">112</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $style;</td></tr>
<tr><td class="h">113</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;given ($val) {</td></tr>
<tr><td class="h">114</td><td><div class="c0">0</div><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when ($_ &lt;  75) { $style = &#39;c0&#39; }</td></tr>
<tr><td class="h">115</td><td><div class="c0">0</div><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when ($_ &lt;  90) { $style = &#39;c1&#39; }</td></tr>
<tr><td class="h">116</td><td><div class="c0">0</div><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when ($_ &lt;  100) { $style = &#39;c2&#39; }</td></tr>
<tr><td class="h">117</td><td><div class="c0">0</div><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when ($_ &gt;= 100) { $style = &#39;c3&#39; }</td></tr>
<tr><td class="h">118</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">119</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new_stat.=qq{&lt;td class=&quot;$style&quot;&gt;$val&lt;/td&gt;};</td></tr>
<tr><td class="h">120</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">121</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $prev_total = $prev_stats-&gt;[3];</td></tr>
<tr><td class="h">122</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $this_total = $last_row-&gt;[-1];</td></tr>
<tr><td class="h">123</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L123">0</a></div><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L123">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if ($this_total == $prev_total) {</td></tr>
<tr><td class="h">124</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new_stat.=qq{&lt;td class=&quot;c3&quot;&gt;=&lt;/td&gt;};</td></tr>
<tr><td class="h">125</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">126</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;elsif ($this_total &gt; $prev_total) {</td></tr>
<tr><td class="h">127</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new_stat.=qq{&lt;td class=&quot;c3&quot;&gt;+&lt;/td&gt;};</td></tr>
<tr><td class="h">128</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">129</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">130</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$new_stat.=qq{&lt;td class=&quot;c0&quot;&gt;-&lt;/td&gt;};</td></tr>
<tr><td class="h">131</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">132</td><td colspan="6"></td></tr><tr><td class="h">133</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$new_stat.=&quot;&lt;/tr&gt;\n&quot;;</td></tr>
<tr><td class="h">134</td><td colspan="6"></td></tr><tr><td class="h">135</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $archive = $self-&gt;archive_html-&gt;slurp;</td></tr>
<tr><td class="h">136</td><td><div class="c0">0</div><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$archive =~ s/(&lt;!-- INSERT --&gt;)/$1 . $new_stat/e;</td></tr>
<tr><td class="h">137</td><td colspan="6"></td></tr><tr><td class="h">138</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $fh = $self-&gt;archive_html-&gt;openw;</td></tr>
<tr><td class="h">139</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;print $fh $archive;</td></tr>
<tr><td class="h">140</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;close $fh;</td></tr>
<tr><td class="h">141</td><td colspan="6"></td></tr><tr><td class="h">142</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L142">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;unless (-e $self-&gt;to-&gt;file(&#39;cover.css&#39;)) {</td></tr>
<tr><td class="h">143</td><td><div class="c0">0</div></td><td><div class="c0" title="-/-"><a href="lib-App-ArchiveDevelCover-pm--branch.html#L143">0</a></div></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy($self-&gt;from-&gt;file(&#39;cover.css&#39;),$self-&gt;to-&gt;file(&#39;cover.css&#39;)) || warn &quot;Cannot copy cover.css: $!&quot;;</td></tr>
<tr><td class="h">144</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">145</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">146</td><td colspan="6"></td></tr><tr><td class="h">147</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub update_archive_db {</td></tr>
<tr><td class="h">148</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L148">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($self, $last_row) = @_;</td></tr>
<tr><td class="h">149</td><td><div class="c0">0</div></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--condition.html#L149">0</a></div></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $dbw = $self-&gt;archive_db-&gt;open(&quot;&gt;&gt;&quot;) || warn &quot;Can&#39;t write archive.db: $!&quot;;</td></tr>
<tr><td class="h">150</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;say $dbw join(&#39;;&#39;,$self-&gt;runtime-&gt;iso8601,@$last_row);</td></tr>
<tr><td class="h">151</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;close $dbw;</td></tr>
<tr><td class="h">152</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">153</td><td colspan="6"></td></tr><tr><td class="h">154</td><td></td><td></td><td></td><td></td><td></td><td class="s">sub _archive_template {</td></tr>
<tr><td class="h">155</td><td><div class="c0">0</div></td><td></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L155">0</a></div></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</td></tr>
<tr><td class="h">156</td><td><div class="c0">0</div></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--condition.html#L156">0</a></div></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $name = $self-&gt;project || &#39;unnamed project&#39;;</td></tr>
<tr><td class="h">157</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $class = ref($self);</td></tr>
<tr><td class="h">158</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $version = $class-&gt;VERSION;</td></tr>
<tr><td class="h">159</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;return &lt;&lt;&quot;EOTMPL&quot;;</td></tr>
<tr><td class="h">160</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;!DOCTYPE html</td></tr>
<tr><td class="h">161</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</td></tr>
<tr><td class="h">162</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</td></tr>
<tr><td class="h">163</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</td></tr>
<tr><td class="h">164</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;!-- This file was generated by $class version $version --&gt;</td></tr>
<tr><td class="h">165</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;head&gt;</td></tr>
<tr><td class="h">166</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;&lt;/meta&gt;</td></tr>
<tr><td class="h">167</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta http-equiv=&quot;Content-Language&quot; content=&quot;en-us&quot;&gt;&lt;/meta&gt;</td></tr>
<tr><td class="h">168</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;cover.css&quot;&gt;&lt;/link&gt;</td></tr>
<tr><td class="h">169</td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Test Coverage Archive for $name&lt;/title&gt;</td></tr>
<tr><td class="h">170</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;/head&gt;</td></tr>
<tr><td class="h">171</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;body&gt;</td></tr>
<tr><td class="h">172</td><td colspan="6"></td></tr><tr><td class="h">173</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;body&gt;</td></tr>
<tr><td class="h">174</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;h1&gt;Test Coverage Archive for $name&lt;/h1&gt;</td></tr>
<tr><td class="h">175</td><td colspan="6"></td></tr><tr><td class="h">176</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;table&gt;</td></tr>
<tr><td class="h">177</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;tr&gt;&lt;th&gt;Coverage Report&lt;/th&gt;&lt;th&gt;stmt&lt;/th&gt;&lt;th&gt;sub&lt;/th&gt;&lt;th&gt;total&lt;/th&gt;&lt;th&gt;Trend&lt;/th&gt;&lt;/tr&gt;</td></tr>
<tr><td class="h">178</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;!-- INSERT --&gt;</td></tr>
<tr><td class="h">179</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;/table&gt;</td></tr>
<tr><td class="h">180</td><td colspan="6"></td></tr><tr><td class="h">181</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;p&gt;Generated by &lt;a href=&quot;http://metacpan.org/module/$class&quot;&gt;$class&lt;/a&gt; version $version.&lt;/p&gt;</td></tr>
<tr><td class="h">182</td><td colspan="6"></td></tr><tr><td class="h">183</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;/body&gt;</td></tr>
<tr><td class="h">184</td><td></td><td></td><td></td><td></td><td></td><td class="s">&lt;/html&gt;</td></tr>
<tr><td class="h">185</td><td></td><td></td><td></td><td></td><td></td><td class="s">EOTMPL</td></tr>
<tr><td class="h">186</td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">187</td><td colspan="6"></td></tr><tr><td class="h">188</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">189</td><td></td><td></td><td></td><td></td><td></td><td class="s">1;</td></tr>
<tr><td class="h">190</td><td colspan="6"></td></tr></table>
</body>
</html>