simplecov-html 0.10.2 → 0.11.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +0 -1
- data/.rubocop.yml +42 -17
- data/.tool-versions +1 -0
- data/.travis.yml +16 -20
- data/CHANGELOG.md +14 -2
- data/Gemfile +6 -15
- data/Gemfile.lock +62 -0
- data/Guardfile +2 -0
- data/README.md +2 -2
- data/Rakefile +3 -1
- data/assets/javascripts/application.js +2 -10
- data/assets/stylesheets/screen.css.sass +10 -1
- data/lib/simplecov-html.rb +19 -0
- data/lib/simplecov-html/version.rb +3 -1
- data/public/application.css +41 -31
- data/public/application.js +2 -10
- data/simplecov-html.gemspec +4 -3
- data/test/helper.rb +2 -0
- data/test/test_simple_cov-html.rb +3 -1
- data/views/file_list.erb +44 -13
- data/views/source_file.erb +45 -9
- metadata +12 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9739b1c1b636276583372c62e709b89efe4312ce6495f37df3fef5d6b70d297b
|
4
|
+
data.tar.gz: d2df67e60673a9be60ae1252addfea3ffeff56e323a79015fa1cd986f5fbfd6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd6bfbaa06863385d1e98bcf6693067594c247565676bb41a609e164c25ac06be9a3475beb6bf3e71b655d95b910e90b1bf270d2a0e52d8ffdd2e9e902840794
|
7
|
+
data.tar.gz: 3043020012fb6b0e3d16c821c162d011e63c12494c9b9d094a2cd4ef261baac3dd5f07433b441b518d2fb515f27756966da7b995427f1c82255671f0f590c0cf
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,7 +1,23 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.6
|
3
|
+
DisplayCopNames: true
|
4
|
+
|
5
|
+
Bundler/DuplicatedGem:
|
6
|
+
Enabled: false
|
7
|
+
|
8
|
+
Gemspec/RequiredRubyVersion:
|
9
|
+
Enabled: false
|
10
|
+
|
11
|
+
Layout/AccessModifierIndentation:
|
12
|
+
EnforcedStyle: outdent
|
13
|
+
|
14
|
+
Layout/SpaceInsideHashLiteralBraces:
|
15
|
+
EnforcedStyle: no_space
|
16
|
+
|
1
17
|
Metrics/BlockNesting:
|
2
18
|
Max: 2
|
3
19
|
|
4
|
-
|
20
|
+
Layout/LineLength:
|
5
21
|
AllowURI: true
|
6
22
|
Enabled: false
|
7
23
|
|
@@ -13,15 +29,17 @@ Metrics/ParameterLists:
|
|
13
29
|
Max: 4
|
14
30
|
CountKeywordArgs: true
|
15
31
|
|
16
|
-
|
17
|
-
|
32
|
+
Naming/FileName:
|
33
|
+
Exclude:
|
34
|
+
- "lib/simplecov-html.rb"
|
35
|
+
- "test/test_simple_cov-html.rb"
|
18
36
|
|
19
37
|
Style/CollectionMethods:
|
20
38
|
PreferredMethods:
|
21
|
-
map:
|
22
|
-
reduce:
|
23
|
-
find:
|
24
|
-
find_all:
|
39
|
+
map: "collect"
|
40
|
+
reduce: "inject"
|
41
|
+
find: "detect"
|
42
|
+
find_all: "select"
|
25
43
|
|
26
44
|
Style/Documentation:
|
27
45
|
Enabled: false
|
@@ -29,26 +47,33 @@ Style/Documentation:
|
|
29
47
|
Style/DoubleNegation:
|
30
48
|
Enabled: false
|
31
49
|
|
32
|
-
Style/
|
33
|
-
|
34
|
-
|
35
|
-
|
50
|
+
Style/ExpandPathArguments:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/FrozenStringLiteralComment:
|
54
|
+
Enabled: true
|
36
55
|
|
37
56
|
Style/HashSyntax:
|
38
57
|
EnforcedStyle: hash_rockets
|
39
58
|
|
40
59
|
Style/MutableConstant:
|
41
60
|
Exclude:
|
42
|
-
-
|
61
|
+
- "lib/simplecov-html/version.rb"
|
43
62
|
|
44
|
-
Style/
|
63
|
+
Style/NumericPredicate:
|
45
64
|
Enabled: false
|
46
65
|
|
47
|
-
Style/
|
48
|
-
|
66
|
+
Style/RegexpLiteral:
|
67
|
+
Enabled: false
|
49
68
|
|
50
69
|
Style/StringLiterals:
|
51
70
|
EnforcedStyle: double_quotes
|
52
71
|
|
53
|
-
Style/
|
54
|
-
|
72
|
+
Style/SymbolArray:
|
73
|
+
Enabled: false
|
74
|
+
|
75
|
+
Style/TrailingCommaInHashLiteral:
|
76
|
+
EnforcedStyleForMultiline: "comma"
|
77
|
+
|
78
|
+
Style/TrailingCommaInArrayLiteral:
|
79
|
+
EnforcedStyleForMultiline: "comma"
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 2.6.5
|
data/.travis.yml
CHANGED
@@ -1,29 +1,25 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
3
|
before_install:
|
4
|
-
- gem
|
4
|
+
- gem i bundler
|
5
5
|
|
6
|
-
bundler_args: --without
|
7
|
-
|
8
|
-
cache: bundler
|
9
|
-
|
10
|
-
sudo: false
|
11
|
-
|
12
|
-
rvm:
|
13
|
-
- 1.8.7
|
14
|
-
- 1.9.3
|
15
|
-
- 2.0.0
|
16
|
-
- 2.1
|
17
|
-
- 2.2
|
18
|
-
- 2.3.1
|
19
|
-
- ruby-head
|
20
|
-
- jruby
|
21
|
-
- rbx-2
|
22
|
-
- jruby-9.1.12.0
|
6
|
+
bundler_args: --without benchmark --jobs=3 --retry=3
|
23
7
|
|
24
8
|
matrix:
|
9
|
+
include:
|
10
|
+
- rvm: 2.4.9
|
11
|
+
- rvm: 2.5.7
|
12
|
+
- rvm: 2.6.5
|
13
|
+
- rvm: 2.7.0
|
14
|
+
- rvm: jruby-9.2.9.0
|
15
|
+
env: JRUBY_OPTS=--debug
|
16
|
+
jdk: openjdk8
|
17
|
+
- rvm: ruby-head
|
18
|
+
- rvm: jruby-head
|
19
|
+
env: JRUBY_OPTS=--debug
|
20
|
+
jdk: openjdk8
|
25
21
|
allow_failures:
|
26
22
|
- rvm: ruby-head
|
27
|
-
- rvm: jruby
|
28
|
-
|
23
|
+
- rvm: jruby-head
|
24
|
+
env: JRUBY_OPTS=--debug
|
29
25
|
fast_finish: true
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,23 @@
|
|
1
|
-
0.
|
1
|
+
0.11.0.beta1 (2020-01-05)
|
2
|
+
========
|
3
|
+
|
4
|
+
Changes ruby support to 2.4+, adds branch coverage support. Meant to be used with simplecov 0.18
|
5
|
+
|
6
|
+
## Breaking Changes
|
7
|
+
* Drops support for EOL'ed ruby versions, new support is ~> 2.4
|
8
|
+
|
9
|
+
## Enhancements
|
10
|
+
* Support/display of branch coverage from simplecov 0.18.0.beta1, little badges saying `hit_count, positive_or_negative` will appear next to lines if branch coverage is activated. `0, +` means positive branch was never hit, `2, -` means negative branch was hit twice
|
11
|
+
* Encoding compatibility errors are now caught and printed out
|
12
|
+
|
13
|
+
0.10.2 (2017-08-14)
|
2
14
|
========
|
3
15
|
|
4
16
|
## Bugfixes
|
5
17
|
|
6
18
|
* Allow usage with frozen-string-literal-enabled. See [#56](https://github.com/colszowka/simplecov-html/pull/56) (thanks @pat)
|
7
19
|
|
8
|
-
0.10.1 2017-05-17
|
20
|
+
0.10.1 (2017-05-17)
|
9
21
|
========
|
10
22
|
|
11
23
|
## Bugfixes
|
data/Gemfile
CHANGED
@@ -1,26 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source "https://rubygems.org"
|
2
4
|
|
3
5
|
gemspec
|
4
6
|
|
5
|
-
|
6
|
-
gem "rake", "~> 10.5"
|
7
|
-
else
|
8
|
-
gem "rake", ">= 11"
|
9
|
-
end
|
7
|
+
gem "rake", ">= 11"
|
10
8
|
|
11
9
|
# Use local copy of simplecov in development when checked out, fetch from git otherwise
|
12
10
|
if File.directory?(File.dirname(__FILE__) + "/../simplecov")
|
13
11
|
gem "simplecov", :path => File.dirname(__FILE__) + "/../simplecov"
|
14
12
|
else
|
15
|
-
gem "simplecov", :
|
16
|
-
end
|
17
|
-
|
18
|
-
platforms :ruby_18, :ruby_19 do
|
19
|
-
gem "json", "~> 1.8"
|
20
|
-
end
|
21
|
-
|
22
|
-
platforms :ruby_18, :ruby_19, :ruby_20, :ruby_21 do
|
23
|
-
gem "rack", "~> 1.6"
|
13
|
+
gem "simplecov", :github => "colszowka/simplecov"
|
24
14
|
end
|
25
15
|
|
26
16
|
group :test do
|
@@ -30,5 +20,6 @@ end
|
|
30
20
|
group :development do
|
31
21
|
gem "rubocop"
|
32
22
|
gem "sass"
|
33
|
-
|
23
|
+
# sprockets 4.0 requires ruby 2.5+
|
24
|
+
gem "sprockets", "~> 3.7"
|
34
25
|
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
simplecov-html (0.11.0.beta1)
|
5
|
+
|
6
|
+
PATH
|
7
|
+
remote: /home/tobi/github/simplecov
|
8
|
+
specs:
|
9
|
+
simplecov (0.18.0.beta1)
|
10
|
+
docile (~> 1.1)
|
11
|
+
simplecov-html (~> 0.11.0.beta1)
|
12
|
+
|
13
|
+
GEM
|
14
|
+
remote: https://rubygems.org/
|
15
|
+
specs:
|
16
|
+
ast (2.4.0)
|
17
|
+
concurrent-ruby (1.1.5)
|
18
|
+
docile (1.3.2)
|
19
|
+
ffi (1.11.3)
|
20
|
+
jaro_winkler (1.5.4)
|
21
|
+
minitest (5.13.0)
|
22
|
+
parallel (1.19.1)
|
23
|
+
parser (2.7.0.1)
|
24
|
+
ast (~> 2.4.0)
|
25
|
+
rack (2.0.7)
|
26
|
+
rainbow (3.0.0)
|
27
|
+
rake (13.0.1)
|
28
|
+
rb-fsevent (0.10.3)
|
29
|
+
rb-inotify (0.10.0)
|
30
|
+
ffi (~> 1.0)
|
31
|
+
rubocop (0.78.0)
|
32
|
+
jaro_winkler (~> 1.5.1)
|
33
|
+
parallel (~> 1.10)
|
34
|
+
parser (>= 2.6)
|
35
|
+
rainbow (>= 2.2.2, < 4.0)
|
36
|
+
ruby-progressbar (~> 1.7)
|
37
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
38
|
+
ruby-progressbar (1.10.1)
|
39
|
+
sass (3.7.4)
|
40
|
+
sass-listen (~> 4.0.0)
|
41
|
+
sass-listen (4.0.0)
|
42
|
+
rb-fsevent (~> 0.9, >= 0.9.4)
|
43
|
+
rb-inotify (~> 0.9, >= 0.9.7)
|
44
|
+
sprockets (3.7.2)
|
45
|
+
concurrent-ruby (~> 1.0)
|
46
|
+
rack (> 1, < 3)
|
47
|
+
unicode-display_width (1.6.0)
|
48
|
+
|
49
|
+
PLATFORMS
|
50
|
+
ruby
|
51
|
+
|
52
|
+
DEPENDENCIES
|
53
|
+
minitest
|
54
|
+
rake (>= 11)
|
55
|
+
rubocop
|
56
|
+
sass
|
57
|
+
simplecov!
|
58
|
+
simplecov-html!
|
59
|
+
sprockets (~> 3.7)
|
60
|
+
|
61
|
+
BUNDLED WITH
|
62
|
+
2.0.2
|
data/Guardfile
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@ Default HTML formatter for SimpleCov
|
|
3
3
|
|
4
4
|
***Note: To learn more about SimpleCov, check out the main repo at https://github.com/colszowka/simplecov***
|
5
5
|
|
6
|
-
Generates a nice HTML report of your SimpleCov ruby code coverage results on Ruby
|
6
|
+
Generates a nice HTML report of your SimpleCov ruby code coverage results on Ruby 2.4+ using client-side Javascript
|
7
7
|
quite extensively.
|
8
8
|
|
9
9
|
|
@@ -17,7 +17,7 @@ modify the formatter, please make sure the simplecov test suites still pass by d
|
|
17
17
|
* `cd` there, run `bundle`
|
18
18
|
* You should end up with all dev dependencies installed and simplecov-html being used from your disk
|
19
19
|
* Run the tests (units and features)
|
20
|
-
|
20
|
+
|
21
21
|
Please remember to add tests if you add functionality.
|
22
22
|
|
23
23
|
**Important:** If you modify the JS/CSS assets, you'll have to precompile them using `rake assets:compile` - otherwise,
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "bundler"
|
2
4
|
Bundler::GemHelper.install_tasks
|
3
5
|
|
@@ -21,7 +23,7 @@ begin
|
|
21
23
|
RuboCop::RakeTask.new
|
22
24
|
rescue LoadError
|
23
25
|
task :rubocop do
|
24
|
-
|
26
|
+
warn "Rubocop is disabled"
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
@@ -7,16 +7,7 @@ $(document).ready(function() {
|
|
7
7
|
$('.file_list').dataTable({
|
8
8
|
"aaSorting": [[ 1, "asc" ]],
|
9
9
|
"bPaginate": false,
|
10
|
-
"bJQueryUI": true
|
11
|
-
"aoColumns": [
|
12
|
-
null,
|
13
|
-
{ "sType": "percent" },
|
14
|
-
null,
|
15
|
-
null,
|
16
|
-
null,
|
17
|
-
null,
|
18
|
-
null
|
19
|
-
]
|
10
|
+
"bJQueryUI": true
|
20
11
|
});
|
21
12
|
|
22
13
|
// Syntax highlight all files up front - deactivated
|
@@ -124,4 +115,5 @@ $(document).ready(function() {
|
|
124
115
|
$("abbr.timeago").timeago();
|
125
116
|
$('#loading').fadeOut();
|
126
117
|
$('#wrapper').show();
|
118
|
+
$('.dataTables_filter input').focus()
|
127
119
|
});
|
@@ -188,6 +188,8 @@ td
|
|
188
188
|
|
189
189
|
.yellow
|
190
190
|
color: #da0
|
191
|
+
.blue
|
192
|
+
color: blue
|
191
193
|
|
192
194
|
.source_table
|
193
195
|
.covered
|
@@ -198,6 +200,8 @@ td
|
|
198
200
|
border-color: black
|
199
201
|
.skipped
|
200
202
|
border-color: #fc0
|
203
|
+
.missed-branch
|
204
|
+
border-color: #bf0000
|
201
205
|
.covered
|
202
206
|
&:nth-child(odd)
|
203
207
|
background-color: #CDF2CD
|
@@ -217,4 +221,9 @@ td
|
|
217
221
|
&:nth-child(odd)
|
218
222
|
background-color: #FBF0C0
|
219
223
|
&:nth-child(even)
|
220
|
-
background-color: #FBFfCf
|
224
|
+
background-color: #FBFfCf
|
225
|
+
.missed-branch
|
226
|
+
&:nth-child(odd)
|
227
|
+
background-color: #cc8e8e
|
228
|
+
&:nth-child(even)
|
229
|
+
background-color: #cc6e6e
|
data/lib/simplecov-html.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "erb"
|
2
4
|
require "cgi"
|
3
5
|
require "fileutils"
|
@@ -29,6 +31,20 @@ module SimpleCov
|
|
29
31
|
"Coverage report generated for #{result.command_name} to #{output_path}. #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered."
|
30
32
|
end
|
31
33
|
|
34
|
+
# Check if branchable results supported or not
|
35
|
+
# Try used here to escape exceptions
|
36
|
+
def branchable_result?
|
37
|
+
SimpleCov.branch_coverage?
|
38
|
+
end
|
39
|
+
|
40
|
+
def line_status?(source_file, line)
|
41
|
+
if branchable_result? && source_file.line_with_missed_branch?(line.number)
|
42
|
+
"missed-branch"
|
43
|
+
else
|
44
|
+
line.status
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
32
48
|
private
|
33
49
|
|
34
50
|
# Returns the an erb instance for the template of given name
|
@@ -42,6 +58,7 @@ module SimpleCov
|
|
42
58
|
|
43
59
|
def asset_output_path
|
44
60
|
return @asset_output_path if defined?(@asset_output_path) && @asset_output_path
|
61
|
+
|
45
62
|
@asset_output_path = File.join(output_path, "assets", SimpleCov::Formatter::HTMLFormatter::VERSION)
|
46
63
|
FileUtils.mkdir_p(@asset_output_path)
|
47
64
|
@asset_output_path
|
@@ -54,6 +71,8 @@ module SimpleCov
|
|
54
71
|
# Returns the html for the given source_file
|
55
72
|
def formatted_source_file(source_file)
|
56
73
|
template("source_file").result(binding)
|
74
|
+
rescue Encoding::CompatibilityError => e
|
75
|
+
puts "Encoding problems with file #{source_file.filename}. Simplecov/ERB can't handle non ASCII characters in filenames. Error: #{e.message}."
|
57
76
|
end
|
58
77
|
|
59
78
|
# Returns a table containing the given source files
|
data/public/application.css
CHANGED
@@ -532,6 +532,7 @@ pre .tex .formula {
|
|
532
532
|
ColorBox Core Style:
|
533
533
|
The following CSS is consistent between example themes and should not be altered.
|
534
534
|
*/
|
535
|
+
|
535
536
|
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
|
536
537
|
#cboxOverlay{position:fixed; width:100%; height:100%;}
|
537
538
|
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
|
@@ -586,19 +587,19 @@ pre .tex .formula {
|
|
586
587
|
top: 50%; }
|
587
588
|
|
588
589
|
a {
|
589
|
-
color: #
|
590
|
+
color: #333;
|
590
591
|
text-decoration: none; }
|
591
592
|
a:hover {
|
592
|
-
color:
|
593
|
+
color: #000;
|
593
594
|
text-decoration: underline; }
|
594
595
|
|
595
596
|
body {
|
596
597
|
font-family: "Lucida Grande", Helvetica, "Helvetica Neue", Arial, sans-serif;
|
597
598
|
padding: 12px;
|
598
|
-
background-color: #
|
599
|
+
background-color: #333; }
|
599
600
|
|
600
601
|
h1, h2, h3, h4 {
|
601
|
-
color: #
|
602
|
+
color: #1C2324;
|
602
603
|
margin: 0;
|
603
604
|
padding: 0;
|
604
605
|
margin-bottom: 12px; }
|
@@ -609,8 +610,8 @@ table {
|
|
609
610
|
#content {
|
610
611
|
clear: left;
|
611
612
|
background-color: white;
|
612
|
-
border: 2px solid #
|
613
|
-
border-top: 8px solid #
|
613
|
+
border: 2px solid #ddd;
|
614
|
+
border-top: 8px solid #ddd;
|
614
615
|
padding: 18px;
|
615
616
|
-webkit-border-bottom-left-radius: 5px;
|
616
617
|
-webkit-border-bottom-right-radius: 5px;
|
@@ -632,7 +633,7 @@ abbr.timeago {
|
|
632
633
|
|
633
634
|
.timestamp {
|
634
635
|
float: right;
|
635
|
-
color: #
|
636
|
+
color: #ddd; }
|
636
637
|
|
637
638
|
.group_tabs {
|
638
639
|
list-style: none;
|
@@ -648,13 +649,13 @@ abbr.timeago {
|
|
648
649
|
float: left;
|
649
650
|
text-decoration: none;
|
650
651
|
padding: 4px 8px;
|
651
|
-
background-color: #
|
652
|
+
background-color: #aaa;
|
652
653
|
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dddddd), to(#aaaaaa));
|
653
654
|
background: -moz-linear-gradient(#dddddd, #aaaaaa);
|
654
655
|
background: linear-gradient(#dddddd, #aaaaaa);
|
655
656
|
text-shadow: #e5e5e5 1px 1px 0px;
|
656
657
|
border-bottom: none;
|
657
|
-
color: #
|
658
|
+
color: #333;
|
658
659
|
font-weight: bold;
|
659
660
|
margin-right: 8px;
|
660
661
|
border-top: 1px solid #efefef;
|
@@ -665,7 +666,7 @@ abbr.timeago {
|
|
665
666
|
border-top-left-radius: 2px;
|
666
667
|
border-top-right-radius: 2px; }
|
667
668
|
.group_tabs li a:hover {
|
668
|
-
background-color: #
|
669
|
+
background-color: #ccc;
|
669
670
|
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#eeeeee), to(#aaaaaa));
|
670
671
|
background: -moz-linear-gradient(#eeeeee, #aaaaaa);
|
671
672
|
background: linear-gradient(#eeeeee, #aaaaaa); }
|
@@ -674,8 +675,8 @@ abbr.timeago {
|
|
674
675
|
padding-bottom: 3px; }
|
675
676
|
.group_tabs li.active a {
|
676
677
|
color: black;
|
677
|
-
text-shadow:
|
678
|
-
background-color: #
|
678
|
+
text-shadow: #fff 1px 1px 0px;
|
679
|
+
background-color: #ddd;
|
679
680
|
background: -webkit-gradient(linear, 0 0, 0 bottom, from(white), to(#dddddd));
|
680
681
|
background: -moz-linear-gradient(white, #dddddd);
|
681
682
|
background: linear-gradient(white, #dddddd); }
|
@@ -713,13 +714,13 @@ td {
|
|
713
714
|
margin: 0;
|
714
715
|
padding: 0;
|
715
716
|
white-space: normal;
|
716
|
-
color:
|
717
|
+
color: #000;
|
717
718
|
font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
|
718
719
|
.source_table code {
|
719
|
-
color:
|
720
|
+
color: #000;
|
720
721
|
font-family: "Monaco", "Inconsolata", "Consolas", monospace; }
|
721
722
|
.source_table pre {
|
722
|
-
background-color: #
|
723
|
+
background-color: #333; }
|
723
724
|
.source_table pre ol {
|
724
725
|
margin: 0px;
|
725
726
|
padding: 0px;
|
@@ -737,7 +738,7 @@ td {
|
|
737
738
|
float: right;
|
738
739
|
margin-left: 10px;
|
739
740
|
padding: 2px 4px;
|
740
|
-
background-color: #
|
741
|
+
background-color: #444;
|
741
742
|
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#222222), to(#666666));
|
742
743
|
background: -moz-linear-gradient(#222222, #666666);
|
743
744
|
background: linear-gradient(#222222, #666666);
|
@@ -749,51 +750,60 @@ td {
|
|
749
750
|
border-radius: 6px; }
|
750
751
|
|
751
752
|
#footer {
|
752
|
-
color: #
|
753
|
+
color: #ddd;
|
753
754
|
font-size: 12px;
|
754
755
|
font-weight: bold;
|
755
756
|
margin-top: 12px;
|
756
757
|
text-align: right; }
|
757
758
|
#footer a {
|
758
|
-
color: #
|
759
|
+
color: #eee;
|
759
760
|
text-decoration: underline; }
|
760
761
|
#footer a:hover {
|
761
|
-
color:
|
762
|
+
color: #fff;
|
762
763
|
text-decoration: none; }
|
763
764
|
|
764
765
|
.green {
|
765
|
-
color: #
|
766
|
+
color: #090; }
|
766
767
|
|
767
768
|
.red {
|
768
|
-
color: #
|
769
|
+
color: #900; }
|
769
770
|
|
770
771
|
.yellow {
|
771
|
-
color: #
|
772
|
+
color: #da0; }
|
773
|
+
|
774
|
+
.blue {
|
775
|
+
color: blue; }
|
772
776
|
|
773
777
|
.source_table .covered {
|
774
|
-
border-color: #
|
778
|
+
border-color: #090; }
|
775
779
|
.source_table .missed {
|
776
|
-
border-color: #
|
780
|
+
border-color: #900; }
|
777
781
|
.source_table .never {
|
778
782
|
border-color: black; }
|
779
783
|
.source_table .skipped {
|
780
|
-
border-color: #
|
784
|
+
border-color: #fc0; }
|
785
|
+
.source_table .missed-branch {
|
786
|
+
border-color: #bf0000; }
|
781
787
|
.source_table .covered:nth-child(odd) {
|
782
|
-
background-color: #
|
788
|
+
background-color: #CDF2CD; }
|
783
789
|
.source_table .covered:nth-child(even) {
|
784
|
-
background-color: #
|
790
|
+
background-color: #DBF2DB; }
|
785
791
|
.source_table .missed:nth-child(odd) {
|
786
|
-
background-color: #
|
792
|
+
background-color: #F7C0C0; }
|
787
793
|
.source_table .missed:nth-child(even) {
|
788
|
-
background-color: #
|
794
|
+
background-color: #F7CFCF; }
|
789
795
|
.source_table .never:nth-child(odd) {
|
790
796
|
background-color: #efefef; }
|
791
797
|
.source_table .never:nth-child(even) {
|
792
798
|
background-color: #f4f4f4; }
|
793
799
|
.source_table .skipped:nth-child(odd) {
|
794
|
-
background-color: #
|
800
|
+
background-color: #FBF0C0; }
|
795
801
|
.source_table .skipped:nth-child(even) {
|
796
|
-
background-color: #
|
802
|
+
background-color: #FBFfCf; }
|
803
|
+
.source_table .missed-branch:nth-child(odd) {
|
804
|
+
background-color: #cc8e8e; }
|
805
|
+
.source_table .missed-branch:nth-child(even) {
|
806
|
+
background-color: #cc6e6e; }
|
797
807
|
|
798
808
|
|
799
809
|
|
data/public/application.js
CHANGED
@@ -1587,16 +1587,7 @@ $(document).ready(function() {
|
|
1587
1587
|
$('.file_list').dataTable({
|
1588
1588
|
"aaSorting": [[ 1, "asc" ]],
|
1589
1589
|
"bPaginate": false,
|
1590
|
-
"bJQueryUI": true
|
1591
|
-
"aoColumns": [
|
1592
|
-
null,
|
1593
|
-
{ "sType": "percent" },
|
1594
|
-
null,
|
1595
|
-
null,
|
1596
|
-
null,
|
1597
|
-
null,
|
1598
|
-
null
|
1599
|
-
]
|
1590
|
+
"bJQueryUI": true
|
1600
1591
|
});
|
1601
1592
|
|
1602
1593
|
// Syntax highlight all files up front - deactivated
|
@@ -1704,4 +1695,5 @@ $(document).ready(function() {
|
|
1704
1695
|
$("abbr.timeago").timeago();
|
1705
1696
|
$('#loading').fadeOut();
|
1706
1697
|
$('#wrapper').show();
|
1698
|
+
$('.dataTables_filter input').focus()
|
1707
1699
|
});
|
data/simplecov-html.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
2
4
|
require "simplecov-html/version"
|
3
5
|
|
@@ -8,12 +10,11 @@ Gem::Specification.new do |gem|
|
|
8
10
|
gem.authors = ["Christoph Olszowka"]
|
9
11
|
gem.email = ["christoph at olszowka de"]
|
10
12
|
gem.homepage = "https://github.com/colszowka/simplecov-html"
|
11
|
-
gem.description = %(Default HTML formatter for SimpleCov code coverage tool for ruby
|
13
|
+
gem.description = %(Default HTML formatter for SimpleCov code coverage tool for ruby 2.4+)
|
12
14
|
gem.summary = gem.description
|
13
15
|
gem.license = "MIT"
|
14
16
|
|
15
|
-
gem.required_ruby_version = "
|
16
|
-
gem.add_development_dependency "bundler", "~> 1.9"
|
17
|
+
gem.required_ruby_version = "~> 2.4"
|
17
18
|
|
18
19
|
gem.files = `git ls-files`.split("\n")
|
19
20
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/test/helper.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "helper"
|
2
4
|
|
3
|
-
class TestSimpleCovHtml <
|
5
|
+
class TestSimpleCovHtml < Minitest::Test
|
4
6
|
def test_defined
|
5
7
|
assert defined?(SimpleCov::Formatter::HTMLFormatter)
|
6
8
|
assert defined?(SimpleCov::Formatter::HTMLFormatter::VERSION)
|
data/views/file_list.erb
CHANGED
@@ -1,21 +1,40 @@
|
|
1
1
|
<div class="file_list_container" id="<%= title_id %>">
|
2
2
|
<h2>
|
3
3
|
<span class="group_name"><%= title %></span>
|
4
|
-
(<span class="covered_percent"
|
4
|
+
(<span class="covered_percent">
|
5
|
+
<span class="<%= coverage_css_class(source_files.covered_percent) %>">
|
6
|
+
<%= source_files.covered_percent.round(2) %>%
|
7
|
+
</span>
|
8
|
+
</span>
|
5
9
|
covered at
|
6
10
|
<span class="covered_strength">
|
7
11
|
<span class="<%= strength_css_class(source_files.covered_strength) %>">
|
8
12
|
<%= source_files.covered_strength.round(2) %>
|
9
13
|
</span>
|
10
|
-
</span> hits/line
|
14
|
+
</span> hits/line
|
15
|
+
)
|
11
16
|
</h2>
|
17
|
+
|
12
18
|
<a name="<%= title_id %>"></a>
|
19
|
+
|
13
20
|
<div>
|
14
21
|
<b><%= source_files.length %></b> files in total.
|
15
|
-
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="t-line-summary">
|
25
|
+
<b><%= source_files.lines_of_code %></b> relevant lines,
|
16
26
|
<span class="green"><b><%= source_files.covered_lines %></b> lines covered</span> and
|
17
|
-
<span class="red"><b><%= source_files.missed_lines %></b> lines missed </span>
|
27
|
+
<span class="red"><b><%= source_files.missed_lines %></b> lines missed. </span>
|
18
28
|
</div>
|
29
|
+
|
30
|
+
<% if branchable_result? %>
|
31
|
+
<div class="t-branch-summary">
|
32
|
+
<span><b><%= source_files.total_branches %></b> total branches, </span>
|
33
|
+
<span class="green"><b><%= source_files.covered_branches %></b> branches covered</span> and
|
34
|
+
<span class="red"><b><%= source_files.missed_branches %></b> branches missed.</span>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
37
|
+
|
19
38
|
<table class="file_list">
|
20
39
|
<thead>
|
21
40
|
<tr>
|
@@ -26,19 +45,31 @@
|
|
26
45
|
<th>Lines covered</th>
|
27
46
|
<th>Lines missed</th>
|
28
47
|
<th>Avg. Hits / Line</th>
|
48
|
+
<% if branchable_result? %>
|
49
|
+
<th>Branch Coverage</th>
|
50
|
+
<th>Branches</th>
|
51
|
+
<th>Covered branches</th>
|
52
|
+
<th>Missed branches </th>
|
53
|
+
<% end %>
|
29
54
|
</tr>
|
30
55
|
</thead>
|
31
56
|
<tbody>
|
32
57
|
<% source_files.each do |source_file| %>
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
58
|
+
<tr class="t-file">
|
59
|
+
<td class="strong t-file__name"><%= link_to_source_file(source_file) %></td>
|
60
|
+
<td class="<%= coverage_css_class(source_file.covered_percent) %> strong t-file__coverage"><%= source_file.covered_percent.round(2).to_s %> %</td>
|
61
|
+
<td><%= source_file.lines.count %></td>
|
62
|
+
<td><%= source_file.covered_lines.count + source_file.missed_lines.count %></td>
|
63
|
+
<td><%= source_file.covered_lines.count %></td>
|
64
|
+
<td><%= source_file.missed_lines.count %></td>
|
65
|
+
<td><%= source_file.covered_strength %></td>
|
66
|
+
<% if branchable_result? %>
|
67
|
+
<td class="<%= coverage_css_class(source_file.branches_coverage_percent) %> strong t-file__branch-coverage"><%= source_file.branches_coverage_percent.round(2).to_s %> %</td>
|
68
|
+
<td><%= source_file.total_branches.count %></td>
|
69
|
+
<td><%= source_file.covered_branches.count %></td>
|
70
|
+
<td><%= source_file.missed_branches.count %></td>
|
71
|
+
<% end %>
|
72
|
+
</tr>
|
42
73
|
<% end %>
|
43
74
|
</tbody>
|
44
75
|
</table>
|
data/views/source_file.erb
CHANGED
@@ -1,22 +1,58 @@
|
|
1
1
|
<div class="source_table" id="<%= id source_file %>">
|
2
2
|
<div class="header">
|
3
3
|
<h3><%= shortened_filename source_file %></h3>
|
4
|
-
<h4
|
5
|
-
|
6
|
-
|
4
|
+
<h4>
|
5
|
+
<span class="<%= coverage_css_class(source_file.covered_percent) %>">
|
6
|
+
<%= source_file.covered_percent.round(2).to_s %> %
|
7
|
+
</span>
|
8
|
+
lines covered
|
9
|
+
</h4>
|
10
|
+
|
11
|
+
<% if branchable_result? %>
|
12
|
+
<h4>
|
13
|
+
<span class="<%= coverage_css_class(source_file.branches_coverage_percent) %>">
|
14
|
+
<%= source_file.branches_coverage_percent.round(2).to_s %> %
|
15
|
+
</span>
|
16
|
+
branches covered
|
17
|
+
</h4>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<div class="t-line-summary">
|
21
|
+
<b><%= source_file.lines_of_code %></b> relevant lines.
|
7
22
|
<span class="green"><b><%= source_file.covered_lines.count %></b> lines covered</span> and
|
8
23
|
<span class="red"><b><%= source_file.missed_lines.count %></b> lines missed.</span>
|
9
24
|
</div>
|
25
|
+
|
26
|
+
<% if branchable_result? %>
|
27
|
+
<div class="t-branch-summary">
|
28
|
+
<span><b><%= source_file.total_branches.count %></b> total branches, </span>
|
29
|
+
<span class="green"><b><%= source_file.covered_branches.count %></b> branches covered</span> and
|
30
|
+
<span class="red"><b><%= source_file.missed_branches.count %></b> branches missed.</span>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
33
|
+
|
10
34
|
</div>
|
11
|
-
|
35
|
+
|
12
36
|
<pre>
|
13
37
|
<ol>
|
14
38
|
<% source_file.lines.each do |line| %>
|
15
|
-
<
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
39
|
+
<div>
|
40
|
+
<li class="<%= line_status?(source_file, line) %>" data-hits="<%= line.coverage ? line.coverage : '' %>" data-linenumber="<%= line.number %>">
|
41
|
+
<% if line.covered? %><span class="hits"><%= line.coverage %></span><% end %>
|
42
|
+
<% if line.skipped? %><span class="hits">skipped</span><% end %>
|
43
|
+
|
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 %>
|
49
|
+
</span>
|
50
|
+
<% end %>
|
51
|
+
<% end %>
|
52
|
+
|
53
|
+
<code class="ruby"><%= CGI.escapeHTML(line.src.chomp) %></code>
|
54
|
+
</li>
|
55
|
+
</div>
|
20
56
|
<% end %>
|
21
57
|
</ol>
|
22
58
|
</pre>
|
metadata
CHANGED
@@ -1,30 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simplecov-html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christoph Olszowka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.9'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.9'
|
27
|
-
description: Default HTML formatter for SimpleCov code coverage tool for ruby 1.9+
|
11
|
+
date: 2020-01-05 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Default HTML formatter for SimpleCov code coverage tool for ruby 2.4+
|
28
14
|
email:
|
29
15
|
- christoph at olszowka de
|
30
16
|
executables: []
|
@@ -34,9 +20,11 @@ files:
|
|
34
20
|
- ".document"
|
35
21
|
- ".gitignore"
|
36
22
|
- ".rubocop.yml"
|
23
|
+
- ".tool-versions"
|
37
24
|
- ".travis.yml"
|
38
25
|
- CHANGELOG.md
|
39
26
|
- Gemfile
|
27
|
+
- Gemfile.lock
|
40
28
|
- Guardfile
|
41
29
|
- LICENSE
|
42
30
|
- README.md
|
@@ -96,18 +84,17 @@ require_paths:
|
|
96
84
|
- lib
|
97
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
86
|
requirements:
|
99
|
-
- - "
|
87
|
+
- - "~>"
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
89
|
+
version: '2.4'
|
102
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
91
|
requirements:
|
104
|
-
- - "
|
92
|
+
- - ">"
|
105
93
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
94
|
+
version: 1.3.1
|
107
95
|
requirements: []
|
108
|
-
|
109
|
-
rubygems_version: 2.6.10
|
96
|
+
rubygems_version: 3.0.3
|
110
97
|
signing_key:
|
111
98
|
specification_version: 4
|
112
|
-
summary: Default HTML formatter for SimpleCov code coverage tool for ruby
|
99
|
+
summary: Default HTML formatter for SimpleCov code coverage tool for ruby 2.4+
|
113
100
|
test_files: []
|