deep-cover-core 0.7.1 → 0.7.6
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
- data/deep_cover_core.gemspec +7 -4
- data/lib/deep_cover/analyser/per_line.rb +2 -2
- data/lib/deep_cover/analyser/stats.rb +2 -2
- data/lib/deep_cover/backports.rb +1 -0
- data/lib/deep_cover/base.rb +3 -0
- data/lib/deep_cover/builtin_takeover.rb +3 -0
- data/lib/deep_cover/core_ext/coverage_replacement.rb +2 -2
- data/lib/deep_cover/core_ext/exec_callbacks.rb +1 -0
- data/lib/deep_cover/coverage.rb +9 -2
- data/lib/deep_cover/custom_requirer.rb +1 -1
- data/lib/deep_cover/flag_comment_associator.rb +2 -2
- data/lib/deep_cover/reporter/html/index.rb +3 -4
- data/lib/deep_cover/reporter/istanbul.rb +1 -1
- data/lib/deep_cover/tools/strip_heredoc.rb +1 -1
- data/lib/deep_cover/tools/with_unbundled_env.rb +17 -0
- data/lib/deep_cover/version.rb +1 -1
- metadata +40 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bf24929f7466a5ba34eb280c6ea6b65c12a49a8f17faf72dcc52e4ee2df0b07
|
4
|
+
data.tar.gz: dee82a216bd81089e76b607d1da044b3adb58ef5f5941c8d74e0fd65b893f6b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f37f3e8c56ce00fdc4e111157f7d0d1bf4ddf7d16c07974e07252d1aea3b46232ffb391a934b68776573a6a96a845324b9e5addb0e8d3cd40c797a961d686d68
|
7
|
+
data.tar.gz: 555bcbbfa58c144d2033dc684f8ce07a5f963424538cf236f10f1a04f9d6c92b1d146d1ac963e346ec5fe1e9245cd4a6e2a35c46922000b39b032dc996687b27
|
data/deep_cover_core.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = '>= 2.1.0'
|
25
25
|
|
26
26
|
# Main dependency
|
27
|
-
spec.add_runtime_dependency 'parser', '
|
27
|
+
spec.add_runtime_dependency 'parser', '>= 2.5', '< 2.7'
|
28
28
|
|
29
29
|
# Support
|
30
30
|
spec.add_runtime_dependency 'backports', '>= 3.11.0'
|
@@ -38,11 +38,14 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.add_runtime_dependency 'pry'
|
39
39
|
|
40
40
|
### Dev dependencies
|
41
|
-
spec.add_development_dependency 'bundler'
|
42
|
-
spec.add_development_dependency 'rake'
|
41
|
+
spec.add_development_dependency 'bundler'
|
42
|
+
spec.add_development_dependency 'rake'
|
43
43
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
44
44
|
|
45
45
|
# About every single release breaks something
|
46
46
|
# Ruby 2.1 is no longer supported
|
47
|
-
|
47
|
+
if RUBY_VERSION >= '2.3.0'
|
48
|
+
spec.add_development_dependency 'rubocop', '~> 0.74.0'
|
49
|
+
spec.add_development_dependency 'rubocop-performance'
|
50
|
+
end
|
48
51
|
end
|
@@ -12,8 +12,8 @@ module DeepCover
|
|
12
12
|
# same as :branch, but also:
|
13
13
|
# if an empty branch is not executed, the line has to be marked as not executed.
|
14
14
|
# This is only for empty branches because, if they are not empty, there will already
|
15
|
-
# be some red from the partial node covering. We don't everything to become red,
|
16
|
-
#
|
15
|
+
# be some red from the partial node covering. We don't want everything to become red,
|
16
|
+
# simply for 100% coverage to be as hard as branch + node coverage.
|
17
17
|
def results
|
18
18
|
allow_partial = options.fetch(:allow_partial, true)
|
19
19
|
line_hits = Array.new(covered_code.nb_lines + covered_code.lineno - 1)
|
@@ -23,7 +23,7 @@ module DeepCover
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def +(other)
|
26
|
-
self.class.new(to_h.merge(other.to_h) { |k, a, b| a + b })
|
26
|
+
self.class.new(**to_h.merge(other.to_h) { |k, a, b| a + b })
|
27
27
|
end
|
28
28
|
|
29
29
|
def total
|
@@ -31,7 +31,7 @@ module DeepCover
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def with(**values)
|
34
|
-
self.class.new(to_h.merge(values))
|
34
|
+
self.class.new(**to_h.merge(values))
|
35
35
|
end
|
36
36
|
|
37
37
|
def potentially_executable
|
data/lib/deep_cover/backports.rb
CHANGED
data/lib/deep_cover/base.rb
CHANGED
@@ -116,6 +116,9 @@ module DeepCover
|
|
116
116
|
#
|
117
117
|
# If no "tracked dirs" exist, fallback to everything in current directory except each of test/ spec/ bin/ exe/.
|
118
118
|
def auto_detected_paths
|
119
|
+
# When taking over, just go for everything
|
120
|
+
return ['.'] if DeepCover.const_defined?('TAKEOVER_IS_ON') && DeepCover::TAKEOVER_IS_ON
|
121
|
+
|
119
122
|
require_relative 'tools/looks_like_rails_project'
|
120
123
|
|
121
124
|
gemspec_paths = Dir['./*.gemspec'] + Dir['./*/*.gemspec']
|
@@ -5,6 +5,9 @@ require_relative 'coverage'
|
|
5
5
|
require_relative 'core_ext/coverage_replacement'
|
6
6
|
|
7
7
|
require 'coverage'
|
8
|
+
raise "Ruby's builtin coverage is already running, cannot do a takeover" if Coverage.respond_to?(:running?) && Coverage.running?
|
9
|
+
|
8
10
|
BuiltinCoverage = Coverage
|
9
11
|
Object.send(:remove_const, 'Coverage')
|
10
12
|
Coverage = DeepCover::CoverageReplacement.dup
|
13
|
+
DeepCover::TAKEOVER_IS_ON = true
|
@@ -47,13 +47,13 @@ module DeepCover
|
|
47
47
|
raise 'coverage measurement is not enabled' unless running?
|
48
48
|
if @started_args == OLD_COVERAGE_SENTINEL
|
49
49
|
DeepCover.coverage.covered_codes.map do |covered_code|
|
50
|
-
[covered_code.path.to_s, covered_code.line_coverage(
|
50
|
+
[covered_code.path.to_s, covered_code.line_coverage(**DeepCover.config.to_h)]
|
51
51
|
end.to_h
|
52
52
|
else
|
53
53
|
DeepCover.coverage.covered_codes.map do |covered_code|
|
54
54
|
cov = {}
|
55
55
|
cov[:branches] = DeepCover::Analyser::Ruby25LikeBranch.new(covered_code).results if @started_args[:branches]
|
56
|
-
cov[:lines] = covered_code.line_coverage(
|
56
|
+
cov[:lines] = covered_code.line_coverage(**DeepCover.config.to_h) if @started_args[:lines]
|
57
57
|
cov[:methods] = {} if @started_args[:methods]
|
58
58
|
[covered_code.path.to_s, cov]
|
59
59
|
end.to_h
|
data/lib/deep_cover/coverage.rb
CHANGED
@@ -56,7 +56,7 @@ module DeepCover
|
|
56
56
|
self
|
57
57
|
end
|
58
58
|
|
59
|
-
# If a file wasn't required, it won't be in the trackers. This adds those
|
59
|
+
# If a file wasn't required, it won't be in the trackers. This adds those missing files
|
60
60
|
def add_missing_covered_codes
|
61
61
|
top_level_path = DeepCover.config.paths.detect do |path|
|
62
62
|
next unless path.is_a?(String)
|
@@ -77,9 +77,16 @@ module DeepCover
|
|
77
77
|
return
|
78
78
|
end
|
79
79
|
|
80
|
+
skipped = []
|
80
81
|
DeepCover.all_tracked_file_paths.each do |path|
|
81
|
-
|
82
|
+
begin
|
83
|
+
covered_code(path, tracker_hits: :zeroes)
|
84
|
+
rescue Parser::SyntaxError
|
85
|
+
skipped << path
|
86
|
+
end
|
82
87
|
end
|
88
|
+
warn "The following files could not be parsed:\n" + skipped.join("\n") unless skipped.empty?
|
89
|
+
|
83
90
|
nil
|
84
91
|
end
|
85
92
|
|
@@ -46,7 +46,7 @@ module DeepCover
|
|
46
46
|
next unless File.exist?(path_with_ext)
|
47
47
|
|
48
48
|
# https://github.com/jruby/jruby/issues/5465
|
49
|
-
path_with_ext = File.realpath(path_with_ext) if RUBY_PLATFORM == 'java' && JRUBY_VERSION >= '9.2.5'
|
49
|
+
path_with_ext = File.realpath(path_with_ext) if RUBY_PLATFORM == 'java' && Gem::Version.new(JRUBY_VERSION) >= Gem::Version.new('9.2.5')
|
50
50
|
return path_with_ext
|
51
51
|
end
|
52
52
|
else
|
@@ -11,8 +11,8 @@ module DeepCover
|
|
11
11
|
# @param [Array(Parser::Source::Comment)] comments
|
12
12
|
def initialize(covered_code, lookup = 'nocov')
|
13
13
|
@covered_code = covered_code
|
14
|
-
@lookup
|
15
|
-
@ranges
|
14
|
+
@lookup = /^#[\s#*-]*#{lookup}[\s#*-]*$/
|
15
|
+
@ranges = nil
|
16
16
|
end
|
17
17
|
|
18
18
|
def include?(range)
|
@@ -49,10 +49,9 @@ module DeepCover
|
|
49
49
|
|
50
50
|
# {per_char: Stat, ...} => {per_char: {ignored: ...}, per_char_percent: 55.55, ...}
|
51
51
|
def transform_data(data)
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
)
|
52
|
+
numbers = data.transform_values(&:to_h)
|
53
|
+
percent = data.to_h { |type, stat| [:"#{type}_percent", stat.percent_covered] }
|
54
|
+
numbers.merge(percent)
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
@@ -167,7 +167,7 @@ module DeepCover
|
|
167
167
|
msg = "\nHTML coverage written to: '#{output}/index.html'"
|
168
168
|
end
|
169
169
|
end
|
170
|
-
`cd #{dir} && #{Istanbul.bin_path} report --reporter=text #{html}` + msg.to_s
|
170
|
+
`cd #{dir} && #{Istanbul.bin_path} report --exclude-after-remap=false --reporter=text #{html}` + msg.to_s
|
171
171
|
end
|
172
172
|
|
173
173
|
class << self
|
@@ -4,7 +4,7 @@ module DeepCover
|
|
4
4
|
module Tools::StripHeredoc
|
5
5
|
# In-place implementation copied from active-support.
|
6
6
|
IMPLEMENTATION = -> do
|
7
|
-
gsub(/^#{scan(/^[ \t]*(?=\S)/).min}/, ''
|
7
|
+
gsub(/^#{scan(/^[ \t]*(?=\S)/).min}/, '').tap do |stripped|
|
8
8
|
stripped.freeze if frozen?
|
9
9
|
end
|
10
10
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DeepCover
|
4
|
+
module Tools
|
5
|
+
module WithUnbundledEnv
|
6
|
+
extend self
|
7
|
+
# Bundler is changing from with_clean_env to with_unbundled_env in 2.0
|
8
|
+
def with_unbundled_env
|
9
|
+
if Bundler.respond_to?(:with_unbundled_env)
|
10
|
+
Bundler.with_unbundled_env { yield }
|
11
|
+
else
|
12
|
+
Bundler.with_clean_env { yield }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/deep_cover/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deep-cover-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-André Lafortune
|
@@ -9,22 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-11-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parser
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.5'
|
21
|
+
- - "<"
|
19
22
|
- !ruby/object:Gem::Version
|
20
|
-
version: 2.
|
23
|
+
version: '2.7'
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- - "
|
28
|
+
- - ">="
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: 2.5
|
30
|
+
version: '2.5'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.7'
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: backports
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,30 +105,30 @@ dependencies:
|
|
99
105
|
name: bundler
|
100
106
|
requirement: !ruby/object:Gem::Requirement
|
101
107
|
requirements:
|
102
|
-
- - "
|
108
|
+
- - ">="
|
103
109
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
110
|
+
version: '0'
|
105
111
|
type: :development
|
106
112
|
prerelease: false
|
107
113
|
version_requirements: !ruby/object:Gem::Requirement
|
108
114
|
requirements:
|
109
|
-
- - "
|
115
|
+
- - ">="
|
110
116
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
117
|
+
version: '0'
|
112
118
|
- !ruby/object:Gem::Dependency
|
113
119
|
name: rake
|
114
120
|
requirement: !ruby/object:Gem::Requirement
|
115
121
|
requirements:
|
116
|
-
- - "
|
122
|
+
- - ">="
|
117
123
|
- !ruby/object:Gem::Version
|
118
|
-
version: '
|
124
|
+
version: '0'
|
119
125
|
type: :development
|
120
126
|
prerelease: false
|
121
127
|
version_requirements: !ruby/object:Gem::Requirement
|
122
128
|
requirements:
|
123
|
-
- - "
|
129
|
+
- - ">="
|
124
130
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
131
|
+
version: '0'
|
126
132
|
- !ruby/object:Gem::Dependency
|
127
133
|
name: rspec
|
128
134
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,16 +147,30 @@ dependencies:
|
|
141
147
|
name: rubocop
|
142
148
|
requirement: !ruby/object:Gem::Requirement
|
143
149
|
requirements:
|
144
|
-
- -
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.74.0
|
153
|
+
type: :development
|
154
|
+
prerelease: false
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.74.0
|
160
|
+
- !ruby/object:Gem::Dependency
|
161
|
+
name: rubocop-performance
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
145
165
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0
|
166
|
+
version: '0'
|
147
167
|
type: :development
|
148
168
|
prerelease: false
|
149
169
|
version_requirements: !ruby/object:Gem::Requirement
|
150
170
|
requirements:
|
151
|
-
- -
|
171
|
+
- - ">="
|
152
172
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0
|
173
|
+
version: '0'
|
154
174
|
description: Core functionality for the DeepCover gem.
|
155
175
|
email:
|
156
176
|
- github@marc-andre.ca
|
@@ -290,6 +310,7 @@ files:
|
|
290
310
|
- lib/deep_cover/tools/slice.rb
|
291
311
|
- lib/deep_cover/tools/strip_heredoc.rb
|
292
312
|
- lib/deep_cover/tools/truncate_backtrace.rb
|
313
|
+
- lib/deep_cover/tools/with_unbundled_env.rb
|
293
314
|
- lib/deep_cover/version.rb
|
294
315
|
homepage: https://github.com/deep-cover/deep-cover
|
295
316
|
licenses:
|
@@ -311,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
311
332
|
version: '0'
|
312
333
|
requirements: []
|
313
334
|
rubyforge_project:
|
314
|
-
rubygems_version: 2.7.
|
335
|
+
rubygems_version: 2.7.7
|
315
336
|
signing_key:
|
316
337
|
specification_version: 4
|
317
338
|
summary: In depth coverage of your Ruby code.
|