deep-cover 0.1.14 → 0.1.15
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/.rubocop.yml +227 -0
- data/Gemfile +5 -2
- data/Rakefile +9 -6
- data/bin/console +3 -3
- data/bin/cov +8 -8
- data/bin/gemcov +2 -2
- data/bin/selfcov +5 -5
- data/bin/test_gems +11 -10
- data/bin/testall +6 -6
- data/deep_cover.gemspec +26 -21
- data/exe/deep-cover +1 -0
- data/lib/deep-cover.rb +2 -0
- data/lib/deep_cover.rb +3 -0
- data/lib/deep_cover/analyser.rb +2 -0
- data/lib/deep_cover/analyser/base.rb +2 -0
- data/lib/deep_cover/analyser/branch.rb +4 -2
- data/lib/deep_cover/analyser/covered_code_source.rb +3 -1
- data/lib/deep_cover/analyser/function.rb +3 -1
- data/lib/deep_cover/analyser/ignore_uncovered.rb +6 -4
- data/lib/deep_cover/analyser/node.rb +3 -0
- data/lib/deep_cover/analyser/optionally_covered.rb +12 -7
- data/lib/deep_cover/analyser/per_char.rb +7 -6
- data/lib/deep_cover/analyser/per_line.rb +9 -8
- data/lib/deep_cover/analyser/statement.rb +2 -0
- data/lib/deep_cover/analyser/subset.rb +4 -1
- data/lib/deep_cover/auto_run.rb +3 -0
- data/lib/deep_cover/autoload_tracker.rb +6 -3
- data/lib/deep_cover/backports.rb +2 -0
- data/lib/deep_cover/base.rb +11 -2
- data/lib/deep_cover/builtin_takeover.rb +2 -0
- data/lib/deep_cover/cli/debugger.rb +55 -30
- data/lib/deep_cover/cli/deep_cover.rb +17 -11
- data/lib/deep_cover/cli/instrumented_clone_reporter.rb +16 -14
- data/lib/deep_cover/config.rb +29 -16
- data/lib/deep_cover/core_ext/autoload_overrides.rb +2 -0
- data/lib/deep_cover/core_ext/coverage_replacement.rb +2 -0
- data/lib/deep_cover/core_ext/load_overrides.rb +5 -6
- data/lib/deep_cover/core_ext/require_overrides.rb +6 -7
- data/lib/deep_cover/coverage.rb +21 -18
- data/lib/deep_cover/covered_code.rb +22 -12
- data/lib/deep_cover/custom_requirer.rb +82 -35
- data/lib/deep_cover/memoize.rb +48 -0
- data/lib/deep_cover/module_override.rb +2 -0
- data/lib/deep_cover/node.rb +14 -1
- data/lib/deep_cover/node/arguments.rb +2 -0
- data/lib/deep_cover/node/assignments.rb +32 -30
- data/lib/deep_cover/node/base.rb +30 -29
- data/lib/deep_cover/node/begin.rb +3 -1
- data/lib/deep_cover/node/block.rb +5 -2
- data/lib/deep_cover/node/branch.rb +2 -1
- data/lib/deep_cover/node/case.rb +15 -13
- data/lib/deep_cover/node/collections.rb +2 -0
- data/lib/deep_cover/node/const.rb +2 -0
- data/lib/deep_cover/node/def.rb +10 -8
- data/lib/deep_cover/node/empty_body.rb +2 -0
- data/lib/deep_cover/node/exceptions.rb +3 -1
- data/lib/deep_cover/node/if.rb +3 -1
- data/lib/deep_cover/node/keywords.rb +4 -2
- data/lib/deep_cover/node/literals.rb +2 -0
- data/lib/deep_cover/node/loops.rb +5 -3
- data/lib/deep_cover/node/mixin/can_augment_children.rb +8 -7
- data/lib/deep_cover/node/mixin/check_completion.rb +3 -1
- data/lib/deep_cover/node/mixin/child_can_be_empty.rb +4 -2
- data/lib/deep_cover/node/mixin/executed_after_children.rb +2 -0
- data/lib/deep_cover/node/mixin/execution_location.rb +4 -2
- data/lib/deep_cover/node/mixin/flow_accounting.rb +2 -0
- data/lib/deep_cover/node/mixin/has_child.rb +22 -18
- data/lib/deep_cover/node/mixin/has_child_handler.rb +10 -8
- data/lib/deep_cover/node/mixin/has_tracker.rb +4 -2
- data/lib/deep_cover/node/mixin/is_statement.rb +3 -1
- data/lib/deep_cover/node/mixin/rewriting.rb +5 -3
- data/lib/deep_cover/node/mixin/wrapper.rb +2 -0
- data/lib/deep_cover/node/module.rb +11 -9
- data/lib/deep_cover/node/root.rb +2 -0
- data/lib/deep_cover/node/send.rb +4 -2
- data/lib/deep_cover/node/short_circuit.rb +4 -2
- data/lib/deep_cover/node/splat.rb +2 -0
- data/lib/deep_cover/node/variables.rb +2 -0
- data/lib/deep_cover/parser_ext/range.rb +3 -1
- data/lib/deep_cover/problem_with_diagnostic.rb +11 -9
- data/lib/deep_cover/reporter.rb +2 -0
- data/lib/deep_cover/reporter/istanbul.rb +28 -24
- data/lib/deep_cover/tools.rb +2 -0
- data/lib/deep_cover/tools/builtin_coverage.rb +6 -4
- data/lib/deep_cover/tools/camelize.rb +3 -1
- data/lib/deep_cover/tools/dasherize.rb +3 -1
- data/lib/deep_cover/tools/dump_covered_code.rb +7 -6
- data/lib/deep_cover/tools/execute_sample.rb +13 -13
- data/lib/deep_cover/tools/format.rb +3 -1
- data/lib/deep_cover/tools/format_char_cover.rb +4 -2
- data/lib/deep_cover/tools/format_generated_code.rb +3 -1
- data/lib/deep_cover/tools/number_lines.rb +2 -0
- data/lib/deep_cover/tools/our_coverage.rb +5 -3
- data/lib/deep_cover/tools/profiling.rb +66 -0
- data/lib/deep_cover/tools/require_relative_dir.rb +3 -1
- data/lib/deep_cover/tools/silence_warnings.rb +4 -1
- data/lib/deep_cover/tools/slice.rb +3 -1
- data/lib/deep_cover/tools/truncate_backtrace.rb +2 -0
- data/lib/deep_cover/version.rb +3 -1
- metadata +47 -30
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::Camelize
|
3
5
|
# Poor man's camelize. 'an_example' => 'AnExample'
|
4
6
|
def camelize(string)
|
5
|
-
string.to_s.gsub(/([a-z\d]*)[_?!]?/){
|
7
|
+
string.to_s.gsub(/([a-z\d]*)[_?!]?/) { Regexp.last_match(1).capitalize }
|
6
8
|
end
|
7
9
|
end
|
8
10
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
silence_warnings do
|
3
5
|
require 'with_progress'
|
@@ -14,9 +16,8 @@ module DeepCover
|
|
14
16
|
dest_path = File.join(File.expand_path(dest_path), '')
|
15
17
|
root_path = Pathname.new(root_path)
|
16
18
|
skipped = []
|
17
|
-
file_paths = Dir.glob("#{source_path}**/*.rb").select{|p| File.file?(p) }
|
19
|
+
file_paths = Dir.glob("#{source_path}**/*.rb").select { |p| File.file?(p) }
|
18
20
|
file_paths.each.with_progress(title: 'Rewriting') do |path|
|
19
|
-
|
20
21
|
new_path = Pathname(path.gsub(source_path, dest_path))
|
21
22
|
begin
|
22
23
|
covered_code = coverage.covered_code(path, name: new_path.relative_path_from(root_path))
|
@@ -29,10 +30,10 @@ module DeepCover
|
|
29
30
|
end
|
30
31
|
unless skipped.empty?
|
31
32
|
warn [
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
"#{skipped.size} files could not be instrumented because of syntax errors:",
|
34
|
+
*skipped.first(3),
|
35
|
+
('...' if skipped.size > 3),
|
36
|
+
].compact.join("\n")
|
36
37
|
end
|
37
38
|
dest_path
|
38
39
|
end
|
@@ -1,23 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::ExecuteSample
|
3
5
|
# Returns true if the code would have continued, false if the rescue was triggered.
|
4
6
|
def execute_sample(to_execute)
|
5
7
|
# Disable some annoying warning by ruby. We are testing edge cases, so warnings are to be expected.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
to_execute.call
|
12
|
-
end
|
8
|
+
Tools.silence_warnings do
|
9
|
+
if to_execute.is_a?(CoveredCode)
|
10
|
+
to_execute.execute_code
|
11
|
+
else
|
12
|
+
to_execute.call
|
13
13
|
end
|
14
|
-
true
|
15
|
-
rescue RuntimeError => e
|
16
|
-
# In our samples, a simple `raise` doesn't need to be rescued
|
17
|
-
# Other exceptions are not rescued
|
18
|
-
raise unless e.message.empty?
|
19
|
-
false
|
20
14
|
end
|
15
|
+
true
|
16
|
+
rescue RuntimeError => e
|
17
|
+
# In our samples, a simple `raise` doesn't need to be rescued
|
18
|
+
# Other exceptions are not rescued
|
19
|
+
raise unless e.message.empty?
|
20
|
+
false
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::Format
|
3
5
|
CONVERT = Hash.new(' ')
|
@@ -6,7 +8,7 @@ module DeepCover
|
|
6
8
|
|
7
9
|
def format(*results, filename: nil, source: nil)
|
8
10
|
source ||= File.read(filename)
|
9
|
-
results.map!{|counts| counts.map{|c| CONVERT[c]}}
|
11
|
+
results.map! { |counts| counts.map { |c| CONVERT[c] } }
|
10
12
|
[*results, source.lines].transpose.map do |parts|
|
11
13
|
*line_results, line = parts
|
12
14
|
Term::ANSIColor.white(line_results.join) + line.to_s
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::FormatCharCover
|
3
|
-
COLOR = {'x' => :red, ' ' => :green, '-' => :faint}
|
4
|
-
WHITESPACE_MAP = Hash.new{|_, v| v}.merge!(' ' => '·', "\t" => '→ ')
|
5
|
+
COLOR = {'x' => :red, ' ' => :green, '-' => :faint}.freeze
|
6
|
+
WHITESPACE_MAP = Hash.new { |_, v| v }.merge!(' ' => '·', "\t" => '→ ')
|
5
7
|
def format_char_cover(covered_code, show_whitespace: false, **options)
|
6
8
|
bc = covered_code.char_cover(**options)
|
7
9
|
covered_code.buffer.source_lines.map.with_index do |line, line_index|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::FormatGeneratedCode
|
3
5
|
def format_generated_code(covered_code)
|
@@ -7,7 +9,7 @@ module DeepCover
|
|
7
9
|
Term::ANSIColor.yellow(inserted)
|
8
10
|
end
|
9
11
|
|
10
|
-
inserts = inserts.sort_by{|exp, _| [exp.line, exp.column]}.reverse
|
12
|
+
inserts = inserts.sort_by { |exp, _| [exp.line, exp.column] }.reverse
|
11
13
|
generated_lines = generated_code.split("\n")
|
12
14
|
|
13
15
|
inserts.each do |exp_limit, size|
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
|
-
module Tools::
|
4
|
+
module Tools::OurCoverage
|
3
5
|
def our_coverage(source, fn, lineno, **options)
|
4
|
-
covered_code = CoveredCode.new(source:source, path: fn, lineno: lineno)
|
6
|
+
covered_code = CoveredCode.new(source: source, path: fn, lineno: lineno)
|
5
7
|
Tools.execute_sample(covered_code)
|
6
|
-
covered_code.line_coverage(options)[(lineno-1)..-1]
|
8
|
+
covered_code.line_coverage(options)[(lineno - 1)..-1]
|
7
9
|
end
|
8
10
|
end
|
9
11
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DeepCover
|
4
|
+
module Tools::Profiling
|
5
|
+
# Simple forwarding to implementation
|
6
|
+
def start
|
7
|
+
profiler.start
|
8
|
+
end
|
9
|
+
|
10
|
+
def stop
|
11
|
+
@results = profiler.stop
|
12
|
+
end
|
13
|
+
|
14
|
+
def pause
|
15
|
+
profiler.pause
|
16
|
+
end
|
17
|
+
|
18
|
+
def resume
|
19
|
+
profiler.resume
|
20
|
+
end
|
21
|
+
|
22
|
+
def report
|
23
|
+
profiler.report(@results)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Basic utilities using forwarding methods
|
27
|
+
def profile(do_start = true)
|
28
|
+
return yield unless do_start
|
29
|
+
start
|
30
|
+
yield
|
31
|
+
stop
|
32
|
+
report
|
33
|
+
end
|
34
|
+
|
35
|
+
def dont_profile
|
36
|
+
pause if profiler_loaded?
|
37
|
+
yield
|
38
|
+
ensure
|
39
|
+
resume if profiler_loaded?
|
40
|
+
end
|
41
|
+
|
42
|
+
def profiler_loaded?
|
43
|
+
!!@profiler
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
# Dependency injection
|
49
|
+
def profiler
|
50
|
+
@profiler = RubyProfProfiler.new
|
51
|
+
end
|
52
|
+
|
53
|
+
class RubyProfProfiler < SimpleDelegator
|
54
|
+
def initialize
|
55
|
+
raise 'Profiling is not available when using JRuby' if RUBY_PLATFORM == 'java'
|
56
|
+
require 'ruby-prof'
|
57
|
+
super(RubyProf)
|
58
|
+
end
|
59
|
+
|
60
|
+
def report(results)
|
61
|
+
printer = RubyProf::GraphPrinter.new(results)
|
62
|
+
printer.print(STDOUT, {})
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::RequireRelativeDir
|
3
5
|
def require_relative_dir(dir_name, except: [])
|
4
|
-
dir = File.dirname(caller.first.partition(/\.rb:\d/).first)
|
6
|
+
dir = File.dirname(caller(1..1).first.partition(/\.rb:\d/).first)
|
5
7
|
Dir["#{dir}/#{dir_name}/*.rb"].sort.each do |file|
|
6
8
|
require file unless except.include? File.basename(file, '.rb')
|
7
9
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::SilenceWarnings
|
3
5
|
# copied from: activesupport/lib/active_support/core_ext/kernel/reporting.rb
|
@@ -6,7 +8,8 @@ module DeepCover
|
|
6
8
|
end
|
7
9
|
|
8
10
|
def with_warnings(flag)
|
9
|
-
old_verbose
|
11
|
+
old_verbose = $VERBOSE
|
12
|
+
$VERBOSE = flag
|
10
13
|
yield
|
11
14
|
ensure
|
12
15
|
$VERBOSE = old_verbose
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module DeepCover
|
2
4
|
module Tools::Slice
|
3
5
|
def slice(hash, *keys)
|
4
|
-
keys.each_with_object(
|
6
|
+
keys.each_with_object({}) { |k, h| h[k] = hash[k] if hash.has_key?(k) }
|
5
7
|
end
|
6
8
|
end
|
7
9
|
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
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-André Lafortune
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-11-
|
12
|
+
date: 2017-11-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parser
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: highline
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - ">="
|
@@ -68,21 +68,21 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: slop
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - "
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
76
|
+
version: '4.0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - "
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
83
|
+
version: '4.0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: term-ansicolor
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
@@ -96,19 +96,19 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: with_progress
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - "
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '0'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - "
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: pry
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +123,20 @@ dependencies:
|
|
123
123
|
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: activesupport
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '4.0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '4.0'
|
126
140
|
- !ruby/object:Gem::Dependency
|
127
141
|
name: bundler
|
128
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,62 +152,62 @@ dependencies:
|
|
138
152
|
- !ruby/object:Gem::Version
|
139
153
|
version: '1.15'
|
140
154
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
155
|
+
name: psych
|
142
156
|
requirement: !ruby/object:Gem::Requirement
|
143
157
|
requirements:
|
144
|
-
- - "
|
158
|
+
- - ">="
|
145
159
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
160
|
+
version: '2.0'
|
147
161
|
type: :development
|
148
162
|
prerelease: false
|
149
163
|
version_requirements: !ruby/object:Gem::Requirement
|
150
164
|
requirements:
|
151
|
-
- - "
|
165
|
+
- - ">="
|
152
166
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
167
|
+
version: '2.0'
|
154
168
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
169
|
+
name: rake
|
156
170
|
requirement: !ruby/object:Gem::Requirement
|
157
171
|
requirements:
|
158
172
|
- - "~>"
|
159
173
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
174
|
+
version: '10.0'
|
161
175
|
type: :development
|
162
176
|
prerelease: false
|
163
177
|
version_requirements: !ruby/object:Gem::Requirement
|
164
178
|
requirements:
|
165
179
|
- - "~>"
|
166
180
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
181
|
+
version: '10.0'
|
168
182
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
183
|
+
name: rspec
|
170
184
|
requirement: !ruby/object:Gem::Requirement
|
171
185
|
requirements:
|
172
186
|
- - "~>"
|
173
187
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
188
|
+
version: '3.0'
|
175
189
|
type: :development
|
176
190
|
prerelease: false
|
177
191
|
version_requirements: !ruby/object:Gem::Requirement
|
178
192
|
requirements:
|
179
193
|
- - "~>"
|
180
194
|
- !ruby/object:Gem::Version
|
181
|
-
version: '
|
195
|
+
version: '3.0'
|
182
196
|
- !ruby/object:Gem::Dependency
|
183
|
-
name:
|
197
|
+
name: rubocop
|
184
198
|
requirement: !ruby/object:Gem::Requirement
|
185
199
|
requirements:
|
186
200
|
- - ">="
|
187
201
|
- !ruby/object:Gem::Version
|
188
|
-
version: '
|
202
|
+
version: '0'
|
189
203
|
type: :development
|
190
204
|
prerelease: false
|
191
205
|
version_requirements: !ruby/object:Gem::Requirement
|
192
206
|
requirements:
|
193
207
|
- - ">="
|
194
208
|
- !ruby/object:Gem::Version
|
195
|
-
version: '
|
196
|
-
description:
|
209
|
+
version: '0'
|
210
|
+
description: expression and branch coverage for Ruby.
|
197
211
|
email:
|
198
212
|
- github@marc-andre.ca
|
199
213
|
- hunter_spawn@hotmail.com
|
@@ -204,6 +218,7 @@ extra_rdoc_files: []
|
|
204
218
|
files:
|
205
219
|
- ".gitignore"
|
206
220
|
- ".rspec"
|
221
|
+
- ".rubocop.yml"
|
207
222
|
- ".travis.yml"
|
208
223
|
- CODE_OF_CONDUCT.md
|
209
224
|
- CONTRIBUTING.md
|
@@ -251,6 +266,7 @@ files:
|
|
251
266
|
- lib/deep_cover/coverage.rb
|
252
267
|
- lib/deep_cover/covered_code.rb
|
253
268
|
- lib/deep_cover/custom_requirer.rb
|
269
|
+
- lib/deep_cover/memoize.rb
|
254
270
|
- lib/deep_cover/module_override.rb
|
255
271
|
- lib/deep_cover/node.rb
|
256
272
|
- lib/deep_cover/node/arguments.rb
|
@@ -302,6 +318,7 @@ files:
|
|
302
318
|
- lib/deep_cover/tools/format_generated_code.rb
|
303
319
|
- lib/deep_cover/tools/number_lines.rb
|
304
320
|
- lib/deep_cover/tools/our_coverage.rb
|
321
|
+
- lib/deep_cover/tools/profiling.rb
|
305
322
|
- lib/deep_cover/tools/require_relative_dir.rb
|
306
323
|
- lib/deep_cover/tools/silence_warnings.rb
|
307
324
|
- lib/deep_cover/tools/slice.rb
|
@@ -330,5 +347,5 @@ rubyforge_project:
|
|
330
347
|
rubygems_version: 2.6.14
|
331
348
|
signing_key:
|
332
349
|
specification_version: 4
|
333
|
-
summary:
|
350
|
+
summary: In depth coverage of your Ruby code.
|
334
351
|
test_files: []
|