App-ArchiveDevelCover

 view release on metacpan or  search on metacpan

lib/App/ArchiveDevelCover.pm  view on Meta::CPAN

    my @list = $self->from->parent->dir_list;
    return $list[-1] || 'unknown project';
}
has 'coverage_html' => (is=>'ro',isa=>'Path::Class::File',lazy_build=>1,traits=> ['NoGetopt']);
sub _build_coverage_html {
    my $self = shift;
    if (-e $self->from->file('coverage.html')) {
        return $self->from->file('coverage.html');
    }
    else {
        say "Cannot find 'coverage.html' in ".$self->from.'. Aborting';
        exit;
    }
}
has 'runtime' => (is=>'ro',isa=>'DateTime',lazy_build=>1,traits=> ['NoGetopt'],);
sub _build_runtime {
    my $self = shift;
    return DateTime->from_epoch(epoch=>$self->coverage_html->stat->mtime);
}
has 'archive_html' => (is=>'ro',isa=>'Path::Class::File',lazy_build=>1,traits=> ['NoGetopt']);
sub _build_archive_html {

lib/App/ArchiveDevelCover.pm  view on Meta::CPAN

    $self->update_index;
}

sub archive {
    my $self = shift;

    my $from = $self->from;
    my $target = $self->to->subdir($self->runtime->iso8601);

    if (-e $target) {
        say "This coverage report has already been archived.";
        exit;
    }

    $target->mkpath;
    my $target_string = $target->stringify;

    while (my $f = $from->next) {
        next unless $f=~/\.(html|css)$/;
        copy($f->stringify,$target_string) || die "Cannot copy $from to $target_string: $!";
    }

    say "archived coverage reports at $target_string";
}

sub update_index {
    my $self = shift;

    my $te = HTML::TableExtract->new( headers => [qw(stm sub total)] );
    $te->parse(scalar $self->coverage_html->slurp);
    my $rows =$te->rows;
    my $last_row = $rows->[-1];

lib/App/ArchiveDevelCover.pm  view on Meta::CPAN

    close $fh;

    unless (-e $self->to->file('cover.css')) {
         copy($self->from->file('cover.css'),$self->to->file('cover.css')) || warn "Cannot copy cover.css: $!";
    }
}

sub update_archive_db {
    my ($self, $last_row) = @_;
    my $dbw = $self->archive_db->open(">>") || warn "Can't write archive.db: $!";
    say $dbw join(';',$self->runtime->iso8601,@$last_row);
    close $dbw;
}

sub generate_diff {
    my $self = shift;

    my $prev = $self->previous_stats;
    return unless $prev->[0];

    my $te_new = HTML::TableExtract->new( headers => [qw(file stm sub total)] );

t/testdata/run_1/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<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><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-&g...
<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;;</t...
<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>

t/testdata/run_1/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<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="...
<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;...
<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;...
<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></t...
<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...
<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>

t/testdata/run_1/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<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 clas...
<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;&nbs...
<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) = @_;</t...
<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-...
<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 ||...
<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>

t/testdata/run_2/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<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><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="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L18">2</a></div></td><td><div>26</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</...
<tr><td class="h">19</td><td><div class="c3">2</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><div>15</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;if (-e $sel...
<tr><td class="h">20</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>854</div></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><div>0</div></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;. Abort...
<tr><td class="h">24</td><td><div class="c0">0</div></td><td></td><td></td><td></td><td><div>0</div></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="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L29">2</a></div></td><td><div>44</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</...
<tr><td class="h">30</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>17</div></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>

t/testdata/run_2/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<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="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L63">2</a></div></td><td><div>242873</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shif...
<tr><td class="h">64</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>18</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$self-&gt;archive;</td></tr>
<tr><td class="h">65</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>5</div></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="c3">2</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L69">2</a></div></td><td><div>5</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</t...
<tr><td class="h">70</td><td colspan="6"></td></tr><tr><td class="h">71</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>19</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $from = $self-&gt;from;</td></tr>
<tr><td class="h">72</td><td><div class="c3">2</div></td><td></td><td></td><td></td><td><div>27</div></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="c3">2</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><div>2412</div><...
<tr><td class="h">75</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>47</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>10</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>39</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;$target-&gt;mkpath;</td></tr>
<tr><td class="h">80</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>144</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>31</div></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="c3">11</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><div>5766</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n...
<tr><td class="h">84</td><td><div class="c3">6</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><div>290</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...
<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="c3">1</div></td><td></td><td></td><td></td><td><div>286</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;say &quot;archived coverage reports at $target_string&...
<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="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L91">1</a></div></td><td><div>3</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;</t...
<tr><td class="h">92</td><td colspan="6"></td></tr><tr><td class="h">93</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>15</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $te = HTML::TableExtract-&gt;new( headers =&gt; [qw(...
<tr><td class="h">94</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>234</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>3154</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $rows =$te-&gt;rows;</td></tr>
<tr><td class="h">96</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>142</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>4</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>1224</div></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>

t/testdata/run_2/lib-App-ArchiveDevelCover-pm.html  view on Meta::CPAN

<tr><td class="h">137</td><td colspan="6"></td></tr><tr><td class="h">138</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>8</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>205</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;print $fh $archive;</td></tr>
<tr><td class="h">140</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>10</div></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="c3">1</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><div>8</div><...
<tr><td class="h">143</td><td><div class="c3">1</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><div>369</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n...
<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="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L148">1</a></div></td><td><div>3</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my ($self, $last_r...
<tr><td class="h">149</td><td><div class="c3">1</div></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--condition.html#L149">0</a></div></td><td></td><td><div>8</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $dbw = $self-&gt...
<tr><td class="h">150</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>166</div></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="c3">1</div></td><td></td><td></td><td></td><td><div>86</div></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="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="lib-App-ArchiveDevelCover-pm--subroutine.html#L155">1</a></div></td><td><div>2</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $self = shift;<...
<tr><td class="h">156</td><td><div class="c3">1</div></td><td></td><td><div class="c0"><a href="lib-App-ArchiveDevelCover-pm--condition.html#L156">50</a></div></td><td></td><td><div>8</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $name = $self-&...
<tr><td class="h">157</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>11</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $class = ref($self);</td></tr>
<tr><td class="h">158</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>18</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;my $version = $class-&gt;VERSION;</td></tr>
<tr><td class="h">159</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td><div>10</div></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>



( run in 0.910 second using v1.01-cache-2.11-cpan-5511b514fd6 )