simplecov-html 0.11.0.beta1 → 0.11.0.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9739b1c1b636276583372c62e709b89efe4312ce6495f37df3fef5d6b70d297b
4
- data.tar.gz: d2df67e60673a9be60ae1252addfea3ffeff56e323a79015fa1cd986f5fbfd6c
3
+ metadata.gz: 5a029a180a134f18ccae22b1a9040b22258c5aefa763147873a95c9c1ba46e09
4
+ data.tar.gz: a0eded12611371f636eb5680438797ea0fc3f9c674e878fc298bbcb5ddd9ae50
5
5
  SHA512:
6
- metadata.gz: cd6bfbaa06863385d1e98bcf6693067594c247565676bb41a609e164c25ac06be9a3475beb6bf3e71b655d95b910e90b1bf270d2a0e52d8ffdd2e9e902840794
7
- data.tar.gz: 3043020012fb6b0e3d16c821c162d011e63c12494c9b9d094a2cd4ef261baac3dd5f07433b441b518d2fb515f27756966da7b995427f1c82255671f0f590c0cf
6
+ metadata.gz: 98a6a8af89ec6e73d74322a7097ecc36b83adfc21560d1596c15d0d4ea84e275b8bb05b7ef1b2393c237b42d59417691dddda60b53876279fba3e6f6a5089b9b
7
+ data.tar.gz: fd852fe6346d84284b435095bab0ecabe488fe53a8b87483706856aa858cdac14bf764ffbc79c652f912caa3333049885bba02bad4bdfefff97414d27e261978
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ 0.11.0.beta2 (unreleased)
2
+ =======
3
+
4
+ ## Bugfixes
5
+ * Fixed sorting of percent column (regression in previous release)
6
+
1
7
  0.11.0.beta1 (2020-01-05)
2
8
  ========
3
9
 
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simplecov-html (0.11.0.beta1)
4
+ simplecov-html (0.11.0.beta2)
5
5
 
6
6
  PATH
7
7
  remote: /home/tobi/github/simplecov
8
8
  specs:
9
- simplecov (0.18.0.beta1)
9
+ simplecov (0.18.0.beta2)
10
10
  docile (~> 1.1)
11
- simplecov-html (~> 0.11.0.beta1)
11
+ simplecov-html (~> 0.11.0.beta2)
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
@@ -2,25 +2,36 @@
2
2
  //= require_directory ./plugins/
3
3
  //= require_self
4
4
 
5
- $(document).ready(function() {
5
+ $(document).ready(function () {
6
+ branchCoverageActivated = $("body").data("branch-coverage") == true;
7
+
6
8
  // Configuration for fancy sortable tables for source file groups
9
+ // For what these columns are, cecl out file_list.erb - null basically
10
+ // does normal/number style sorting which fine for hit/missed lines only
11
+ // percentages like "covered percent" need special sorting arguments.
12
+ lineColumns = [null, { "sType": "percent" }, null, null, null, null, null];
13
+ branchColumns = [{ "sType": "percent" }, null, null, null];
14
+
15
+ dataColumns = branchCoverageActivated ? lineColumns.concat(branchColumns) : lineColumns;
16
+
7
17
  $('.file_list').dataTable({
8
- "aaSorting": [[ 1, "asc" ]],
18
+ "aaSorting": [[1, "asc"]],
9
19
  "bPaginate": false,
10
- "bJQueryUI": true
20
+ "bJQueryUI": true,
21
+ "aoColumns": dataColumns
11
22
  });
12
23
 
13
24
  // Syntax highlight all files up front - deactivated
14
25
  // $('.source_table pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
15
26
 
16
27
  // Syntax highlight source files on first toggle of the file view popup
17
- $("a.src_link").click(function() {
28
+ $("a.src_link").click(function () {
18
29
  // Get the source file element that corresponds to the clicked element
19
30
  var source_table = $($(this).attr('href'));
20
31
 
21
32
  // If not highlighted yet, do it!
22
33
  if (!source_table.hasClass('highlighted')) {
23
- source_table.find('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
34
+ source_table.find('pre code').each(function (i, e) { hljs.highlightBlock(e, ' ') });
24
35
  source_table.addClass('highlighted');
25
36
  };
26
37
  });
@@ -35,14 +46,14 @@ $(document).ready(function() {
35
46
  opacity: 1,
36
47
  width: "95%",
37
48
  height: "95%",
38
- onLoad: function() {
49
+ onLoad: function () {
39
50
  prev_anchor = curr_anchor ? curr_anchor : jQuery.url.attr('anchor');
40
51
  curr_anchor = this.href.split('#')[1];
41
52
  window.location.hash = curr_anchor;
42
53
  },
43
- onCleanup: function() {
54
+ onCleanup: function () {
44
55
  if (prev_anchor && prev_anchor != curr_anchor) {
45
- $('a[href="#'+prev_anchor+'"]').click();
56
+ $('a[href="#' + prev_anchor + '"]').click();
46
57
  curr_anchor = prev_anchor;
47
58
  } else {
48
59
  $('.group_tabs a:first').click();
@@ -53,13 +64,13 @@ $(document).ready(function() {
53
64
  }
54
65
  });
55
66
 
56
- window.onpopstate = function(event){
57
- if (location.hash.substring(0,2) == "#_") {
67
+ window.onpopstate = function (event) {
68
+ if (location.hash.substring(0, 2) == "#_") {
58
69
  $.colorbox.close();
59
70
  curr_anchor = jQuery.url.attr('anchor');
60
71
  } else {
61
72
  if ($('#colorbox').is(':hidden')) {
62
- $('a.src_link[href="'+location.hash+'"]').colorbox({ open: true });
73
+ $('a.src_link[href="' + location.hash + '"]').colorbox({ open: true });
63
74
  }
64
75
  }
65
76
  };
@@ -69,23 +80,23 @@ $(document).ready(function() {
69
80
  $('.file_list_container').hide();
70
81
 
71
82
  // Add tabs based upon existing file_list_containers
72
- $('.file_list_container h2').each(function(){
83
+ $('.file_list_container h2').each(function () {
73
84
  var container_id = $(this).parent().attr('id');
74
85
  var group_name = $(this).find('.group_name').first().html();
75
86
  var covered_percent = $(this).find('.covered_percent').first().html();
76
87
 
77
- $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' ('+ covered_percent +')</a></li>');
88
+ $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' (' + covered_percent + ')</a></li>');
78
89
  });
79
90
 
80
- $('.group_tabs a').each( function() {
91
+ $('.group_tabs a').each(function () {
81
92
  $(this).addClass($(this).attr('href').replace('#', ''));
82
93
  });
83
94
 
84
95
  // Make sure tabs don't get ugly focus borders when active
85
- $('.group_tabs a').live('focus', function() { $(this).blur(); });
96
+ $('.group_tabs a').live('focus', function () { $(this).blur(); });
86
97
 
87
98
  var favicon_path = $('link[rel="shortcut icon"]').attr('href');
88
- $('.group_tabs a').live('click', function(){
99
+ $('.group_tabs a').live('click', function () {
89
100
  if (!$(this).parent().hasClass('active')) {
90
101
  $('.group_tabs a').parent().removeClass('active');
91
102
  $(this).parent().addClass('active');
@@ -96,7 +107,7 @@ $(document).ready(function() {
96
107
  // Force favicon reload - otherwise the location change containing anchor would drop the favicon...
97
108
  // Works only on firefox, but still... - Anyone know a better solution to force favicon on local file?
98
109
  $('link[rel="shortcut icon"]').remove();
99
- $('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
110
+ $('head').append('<link rel="shortcut icon" type="image/png" href="' + favicon_path + '" />');
100
111
  };
101
112
  return false;
102
113
  });
@@ -106,7 +117,7 @@ $(document).ready(function() {
106
117
  if (anchor.length == 40) {
107
118
  $('a.src_link[href=#' + anchor + ']').click();
108
119
  } else {
109
- $('.group_tabs a.'+anchor.replace('_', '')).click();
120
+ $('.group_tabs a.' + anchor.replace('_', '')).click();
110
121
  }
111
122
  } else {
112
123
  $('.group_tabs a:first').click();
@@ -16,6 +16,10 @@ end
16
16
  module SimpleCov
17
17
  module Formatter
18
18
  class HTMLFormatter
19
+ def initialize
20
+ @branchable_result = SimpleCov.branch_coverage?
21
+ end
22
+
19
23
  def format(result)
20
24
  Dir[File.join(File.dirname(__FILE__), "../public/*")].each do |path|
21
25
  FileUtils.cp_r(path, asset_output_path)
@@ -31,10 +35,11 @@ module SimpleCov
31
35
  "Coverage report generated for #{result.command_name} to #{output_path}. #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered."
32
36
  end
33
37
 
34
- # Check if branchable results supported or not
35
- # Try used here to escape exceptions
36
38
  def branchable_result?
37
- SimpleCov.branch_coverage?
39
+ # cached in initialize because we truly look it up a whole bunch of times
40
+ # and it's easier to cache here then in SimpleCov because there we might
41
+ # still enable/disable branch coverage criterion
42
+ @branchable_result
38
43
  end
39
44
 
40
45
  def line_status?(source_file, line)
@@ -3,7 +3,7 @@
3
3
  module SimpleCov
4
4
  module Formatter
5
5
  class HTMLFormatter
6
- VERSION = "0.11.0.beta1"
6
+ VERSION = "0.11.0.beta2"
7
7
  end
8
8
  end
9
9
  end
@@ -1582,25 +1582,33 @@ jQuery.url = function()
1582
1582
 
1583
1583
 
1584
1584
 
1585
- $(document).ready(function() {
1585
+ $(document).ready(function () {
1586
+ branchCoverageActivated = $("body").data("branch-coverage") == true;
1587
+
1586
1588
  // Configuration for fancy sortable tables for source file groups
1589
+ lineColumns = [null, { "sType": "percent" }, null, null, null, null, null];
1590
+ branchColumns = [{ "sType": "percent" }, null, null, null];
1591
+
1592
+ dataColumns = branchCoverageActivated ? lineColumns.concat(branchColumns) : lineColumns;
1593
+
1587
1594
  $('.file_list').dataTable({
1588
- "aaSorting": [[ 1, "asc" ]],
1595
+ "aaSorting": [[1, "asc"]],
1589
1596
  "bPaginate": false,
1590
- "bJQueryUI": true
1597
+ "bJQueryUI": true,
1598
+ "aoColumns": dataColumns
1591
1599
  });
1592
1600
 
1593
1601
  // Syntax highlight all files up front - deactivated
1594
1602
  // $('.source_table pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
1595
1603
 
1596
1604
  // Syntax highlight source files on first toggle of the file view popup
1597
- $("a.src_link").click(function() {
1605
+ $("a.src_link").click(function () {
1598
1606
  // Get the source file element that corresponds to the clicked element
1599
1607
  var source_table = $($(this).attr('href'));
1600
1608
 
1601
1609
  // If not highlighted yet, do it!
1602
1610
  if (!source_table.hasClass('highlighted')) {
1603
- source_table.find('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
1611
+ source_table.find('pre code').each(function (i, e) { hljs.highlightBlock(e, ' ') });
1604
1612
  source_table.addClass('highlighted');
1605
1613
  };
1606
1614
  });
@@ -1615,14 +1623,14 @@ $(document).ready(function() {
1615
1623
  opacity: 1,
1616
1624
  width: "95%",
1617
1625
  height: "95%",
1618
- onLoad: function() {
1626
+ onLoad: function () {
1619
1627
  prev_anchor = curr_anchor ? curr_anchor : jQuery.url.attr('anchor');
1620
1628
  curr_anchor = this.href.split('#')[1];
1621
1629
  window.location.hash = curr_anchor;
1622
1630
  },
1623
- onCleanup: function() {
1631
+ onCleanup: function () {
1624
1632
  if (prev_anchor && prev_anchor != curr_anchor) {
1625
- $('a[href="#'+prev_anchor+'"]').click();
1633
+ $('a[href="#' + prev_anchor + '"]').click();
1626
1634
  curr_anchor = prev_anchor;
1627
1635
  } else {
1628
1636
  $('.group_tabs a:first').click();
@@ -1633,13 +1641,13 @@ $(document).ready(function() {
1633
1641
  }
1634
1642
  });
1635
1643
 
1636
- window.onpopstate = function(event){
1637
- if (location.hash.substring(0,2) == "#_") {
1644
+ window.onpopstate = function (event) {
1645
+ if (location.hash.substring(0, 2) == "#_") {
1638
1646
  $.colorbox.close();
1639
1647
  curr_anchor = jQuery.url.attr('anchor');
1640
1648
  } else {
1641
1649
  if ($('#colorbox').is(':hidden')) {
1642
- $('a.src_link[href="'+location.hash+'"]').colorbox({ open: true });
1650
+ $('a.src_link[href="' + location.hash + '"]').colorbox({ open: true });
1643
1651
  }
1644
1652
  }
1645
1653
  };
@@ -1649,23 +1657,23 @@ $(document).ready(function() {
1649
1657
  $('.file_list_container').hide();
1650
1658
 
1651
1659
  // Add tabs based upon existing file_list_containers
1652
- $('.file_list_container h2').each(function(){
1660
+ $('.file_list_container h2').each(function () {
1653
1661
  var container_id = $(this).parent().attr('id');
1654
1662
  var group_name = $(this).find('.group_name').first().html();
1655
1663
  var covered_percent = $(this).find('.covered_percent').first().html();
1656
1664
 
1657
- $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' ('+ covered_percent +')</a></li>');
1665
+ $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' (' + covered_percent + ')</a></li>');
1658
1666
  });
1659
1667
 
1660
- $('.group_tabs a').each( function() {
1668
+ $('.group_tabs a').each(function () {
1661
1669
  $(this).addClass($(this).attr('href').replace('#', ''));
1662
1670
  });
1663
1671
 
1664
1672
  // Make sure tabs don't get ugly focus borders when active
1665
- $('.group_tabs a').live('focus', function() { $(this).blur(); });
1673
+ $('.group_tabs a').live('focus', function () { $(this).blur(); });
1666
1674
 
1667
1675
  var favicon_path = $('link[rel="shortcut icon"]').attr('href');
1668
- $('.group_tabs a').live('click', function(){
1676
+ $('.group_tabs a').live('click', function () {
1669
1677
  if (!$(this).parent().hasClass('active')) {
1670
1678
  $('.group_tabs a').parent().removeClass('active');
1671
1679
  $(this).parent().addClass('active');
@@ -1676,7 +1684,7 @@ $(document).ready(function() {
1676
1684
  // Force favicon reload - otherwise the location change containing anchor would drop the favicon...
1677
1685
  // Works only on firefox, but still... - Anyone know a better solution to force favicon on local file?
1678
1686
  $('link[rel="shortcut icon"]').remove();
1679
- $('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
1687
+ $('head').append('<link rel="shortcut icon" type="image/png" href="' + favicon_path + '" />');
1680
1688
  };
1681
1689
  return false;
1682
1690
  });
@@ -1686,7 +1694,7 @@ $(document).ready(function() {
1686
1694
  if (anchor.length == 40) {
1687
1695
  $('a.src_link[href=#' + anchor + ']').click();
1688
1696
  } else {
1689
- $('.group_tabs a.'+anchor.replace('_', '')).click();
1697
+ $('.group_tabs a.' + anchor.replace('_', '')).click();
1690
1698
  }
1691
1699
  } else {
1692
1700
  $('.group_tabs a:first').click();
data/views/layout.erb CHANGED
@@ -3,13 +3,13 @@
3
3
  <head>
4
4
  <title>Code coverage for <%= SimpleCov.project_name %></title>
5
5
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
- <script src='<%= assets_path('application.js') %>' type='text/javascript'></script>
6
+ <script src='<%= assets_path('application.js') %>' type='text/javascript'></script>
7
7
  <link href='<%= assets_path('application.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
8
  <link rel="shortcut icon" type="image/png" href="<%= assets_path("favicon_#{coverage_css_class(result.source_files.covered_percent)}.png") %>" />
9
9
  <link rel="icon" type="image/png" href="<%= assets_path('favicon.png') %>" />
10
10
  </head>
11
-
12
- <body>
11
+
12
+ <body<%= ' data-branch-coverage=true' if branchable_result? %>>
13
13
  <div id="loading">
14
14
  <img src="<%= assets_path('loading.gif') %>" alt="loading"/>
15
15
  </div>
@@ -24,13 +24,13 @@
24
24
  <%= formatted_file_list(name, files) %>
25
25
  <% end %>
26
26
  </div>
27
-
27
+
28
28
  <div id="footer">
29
- Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v<%= SimpleCov::VERSION %>
29
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v<%= SimpleCov::VERSION %>
30
30
  and simplecov-html v<%= SimpleCov::Formatter::HTMLFormatter::VERSION %><br/>
31
31
  using <%= result.command_name %>
32
32
  </div>
33
-
33
+
34
34
  <div class="source_files">
35
35
  <% result.source_files.each do |source_file| %>
36
36
  <%= formatted_source_file(source_file) %>
@@ -42,10 +42,9 @@
42
42
  <% if line.skipped? %><span class="hits">skipped</span><% end %>
43
43
 
44
44
  <% if branchable_result? %>
45
- <% source_file.branches_for_line(line.number).each do |hit_count, indicator| %>
46
- <% positive_or_negative = indicator == "+" ? "positive" : "negative" %>
47
- <span class="hits" title="<%= positive_or_negative%> branch hit <%= hit_count %> times">
48
- <%= hit_count %>, <%= indicator %>
45
+ <% source_file.branches_for_line(line.number).each do |branch_type, hit_count| %>
46
+ <span class="hits" title="<%= branch_type%> branch hit <%= hit_count %> times">
47
+ <%= branch_type %>: <%= hit_count %>
49
48
  </span>
50
49
  <% end %>
51
50
  <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov-html
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0.beta1
4
+ version: 0.11.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Olszowka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-05 00:00:00.000000000 Z
11
+ date: 2020-01-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Default HTML formatter for SimpleCov code coverage tool for ruby 2.4+
14
14
  email: