covered 0.20.1 → 0.20.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/covered/capture.rb +14 -3
- data/lib/covered/files.rb +7 -4
- data/lib/covered/summary.rb +53 -53
- data/lib/covered/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78b0c761d5570d863e9a5d83188e37f136838b566e984ac949f8e9875c6fbc8a
|
4
|
+
data.tar.gz: 0434dcd73729213ebb510009c435557fa13d411a4b4de7564960b12482a8811e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2f0b4eae95375d6e3f08df7d5a064660c0453e7c64775841ea193bf57cbde51ed07145b9f2558dec6a67887b278adc00833e87f96f08621359c08599c24941e
|
7
|
+
data.tar.gz: 4daa48fa88d3a028343bc055743ad60eb702c964e2a98f972478c3b0823a4766db135d118bb0b19e48653a907bbf86d08a0077b1bfa41c1844cc34a7b13ca0b2
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/covered/capture.rb
CHANGED
@@ -21,15 +21,26 @@ module Covered
|
|
21
21
|
::Coverage.result(stop: false, clear: true)
|
22
22
|
end
|
23
23
|
|
24
|
+
EVAL_PATHS = {
|
25
|
+
"(eval)" => true,
|
26
|
+
"(irb)" => true,
|
27
|
+
"eval" => true
|
28
|
+
}
|
29
|
+
|
24
30
|
def finish
|
25
31
|
results = ::Coverage.result
|
26
32
|
|
27
33
|
results.each do |path, result|
|
28
|
-
|
34
|
+
next if EVAL_PATHS.include?(path)
|
35
|
+
|
29
36
|
path = self.expand_path(path)
|
30
37
|
|
31
|
-
|
32
|
-
|
38
|
+
# Skip files which don't exist. This can happen if `eval` is used with an invalid/incorrect path.
|
39
|
+
if File.exist?(path)
|
40
|
+
@output.mark(path, 1, result[:lines])
|
41
|
+
else
|
42
|
+
# warn "Skipping coverage for #{path.inspect} because it doesn't exist!"
|
43
|
+
# Ignore.
|
33
44
|
end
|
34
45
|
end
|
35
46
|
|
data/lib/covered/files.rb
CHANGED
@@ -34,10 +34,13 @@ module Covered
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def mark(lineno, value = 1)
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
Array(value).each_with_index do |value, index|
|
38
|
+
offset = lineno + index
|
39
|
+
if @counts[offset]
|
40
|
+
@counts[offset] += value
|
41
|
+
else
|
42
|
+
@counts[offset] = value
|
43
|
+
end
|
41
44
|
end
|
42
45
|
end
|
43
46
|
|
data/lib/covered/summary.rb
CHANGED
@@ -29,6 +29,7 @@ module Covered
|
|
29
29
|
terminal[:ignored_code] ||= terminal.style(nil, nil, :faint)
|
30
30
|
|
31
31
|
terminal[:annotations] ||= terminal.style(:blue)
|
32
|
+
terminal[:error] ||= terminal.style(:red)
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
@@ -82,36 +83,49 @@ module Covered
|
|
82
83
|
end
|
83
84
|
end
|
84
85
|
|
86
|
+
def print_coverage(terminal, coverage)
|
87
|
+
line_offset = 1
|
88
|
+
counts = coverage.counts
|
89
|
+
|
90
|
+
coverage.read do |file|
|
91
|
+
print_line_header(terminal)
|
92
|
+
|
93
|
+
file.each_line do |line|
|
94
|
+
count = counts[line_offset]
|
95
|
+
|
96
|
+
print_annotations(terminal, coverage, line, line_offset)
|
97
|
+
|
98
|
+
print_line(terminal, line, line_offset, count)
|
99
|
+
|
100
|
+
line_offset += 1
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def print_error(terminal, error)
|
106
|
+
terminal.puts "Error: #{error.message}", style: :error
|
107
|
+
terminal.puts error.backtrace
|
108
|
+
end
|
109
|
+
|
85
110
|
# A coverage array gives, for each line, the number of line execution by the interpreter. A nil value means coverage is finishd for this line (lines like else and end).
|
86
|
-
def call(wrapper, output = $stdout)
|
111
|
+
def call(wrapper, output = $stdout, **options)
|
87
112
|
terminal = self.terminal(output)
|
88
113
|
|
89
114
|
statistics = self.each(wrapper) do |coverage|
|
90
|
-
line_offset = 1
|
91
|
-
|
92
115
|
path = wrapper.relative_path(coverage.path)
|
93
116
|
terminal.puts ""
|
94
117
|
terminal.puts path, style: :path
|
95
118
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
file.each_line do |line|
|
102
|
-
count = counts[line_offset]
|
103
|
-
|
104
|
-
print_annotations(terminal, coverage, line, line_offset)
|
105
|
-
|
106
|
-
print_line(terminal, line, line_offset, count)
|
107
|
-
|
108
|
-
line_offset += 1
|
109
|
-
end
|
119
|
+
begin
|
120
|
+
print_coverage(terminal, coverage, **options)
|
121
|
+
rescue => error
|
122
|
+
print_error(terminal, error)
|
110
123
|
end
|
111
124
|
|
112
125
|
coverage.print(output)
|
113
126
|
end
|
114
127
|
|
128
|
+
terminal.puts
|
115
129
|
statistics.print(output)
|
116
130
|
end
|
117
131
|
end
|
@@ -150,49 +164,35 @@ module Covered
|
|
150
164
|
end
|
151
165
|
|
152
166
|
class PartialSummary < Summary
|
153
|
-
def
|
154
|
-
|
167
|
+
def print_coverage(terminal, coverage, before: 4, after: 4)
|
168
|
+
return if coverage.zero?
|
155
169
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
terminal
|
162
|
-
|
163
|
-
counts = coverage.counts
|
164
|
-
last_line = nil
|
170
|
+
line_offset = 1
|
171
|
+
counts = coverage.counts
|
172
|
+
last_line = nil
|
173
|
+
|
174
|
+
coverage.read do |file|
|
175
|
+
print_line_header(terminal)
|
165
176
|
|
166
|
-
|
167
|
-
|
177
|
+
file.each_line do |line|
|
178
|
+
range = Range.new([line_offset - before, 0].max, line_offset+after)
|
168
179
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
count = counts[line_offset]
|
175
|
-
|
176
|
-
if last_line and last_line != line_offset-1
|
177
|
-
terminal.puts ":".rjust(16)
|
178
|
-
end
|
179
|
-
|
180
|
-
print_annotations(terminal, coverage, line, line_offset)
|
181
|
-
print_line(terminal, line, line_offset, count)
|
182
|
-
|
183
|
-
last_line = line_offset
|
184
|
-
end
|
185
|
-
|
186
|
-
line_offset += 1
|
180
|
+
if counts[range]&.include?(0)
|
181
|
+
count = counts[line_offset]
|
182
|
+
|
183
|
+
if last_line and last_line != line_offset-1
|
184
|
+
terminal.puts ":".rjust(16)
|
187
185
|
end
|
186
|
+
|
187
|
+
print_annotations(terminal, coverage, line, line_offset)
|
188
|
+
print_line(terminal, line, line_offset, count)
|
189
|
+
|
190
|
+
last_line = line_offset
|
188
191
|
end
|
192
|
+
|
193
|
+
line_offset += 1
|
189
194
|
end
|
190
|
-
|
191
|
-
coverage.print(output)
|
192
195
|
end
|
193
|
-
|
194
|
-
terminal.puts
|
195
|
-
statistics.print(output)
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
data/lib/covered/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: covered
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.20.
|
4
|
+
version: 0.20.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -43,7 +43,7 @@ cert_chain:
|
|
43
43
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
44
44
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
45
45
|
-----END CERTIFICATE-----
|
46
|
-
date: 2023-
|
46
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
47
47
|
dependencies:
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: console
|
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: '0'
|
178
178
|
requirements: []
|
179
|
-
rubygems_version: 3.4.
|
179
|
+
rubygems_version: 3.4.6
|
180
180
|
signing_key:
|
181
181
|
specification_version: 4
|
182
182
|
summary: A modern approach to code coverage.
|
metadata.gz.sig
CHANGED
Binary file
|