deep-cover-core 0.7.1 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|