coverband 3.0.0.alpha → 3.0.0.alpha2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ff8f54b9c75fc882bc548834903c232af3ff9e74
4
- data.tar.gz: 72cbf124e7484c096bc8316f8940a5d1128ba4de
2
+ SHA256:
3
+ metadata.gz: d163fe104d7966396a057777b51ce78a908c51875fbbc79923499c84c839005d
4
+ data.tar.gz: 6fe8e31cfbb5045aca8082ebd741bcf0c67fc7acc6b0e62baa58ebb5671638bb
5
5
  SHA512:
6
- metadata.gz: f964fca6d95868d170694bb4dfb5a064b9d8df717e63a5d79b941dda8beaa6e6acbc3b149f98891030538da8c5b88d46a89edfbd9d97e668230e802fa222102e
7
- data.tar.gz: de616d37895b9446425e2947d435db919776019f8658d45183430de3c95675e40591e49bcf0539a5306389f1ee52f5ae15372fa2521b13a71ead5a738ff79340
6
+ metadata.gz: '09c1da6a595dd6c0f69925f355a78e1d7373c0333c85cc34e1461f220d1eda4473031f874bb71ec2ed557a05fc506c6884c069732e746260059d864c5e7ff5ed'
7
+ data.tar.gz: a3afd7d3c8706dff2150fc503805fcdf5c7b7cba7f98d2a104175fae6af41b0d05e9c446998ceda3104a4f1f5e6dbf4432d114f1c9f83d93f9809b2cf059afad
data/README.md CHANGED
@@ -46,6 +46,8 @@ Below is my Coverband workflow, which hopefully will help other best use this li
46
46
  * clear old coverage: `rake coverband:clear`
47
47
  * deploy and verify coverage is matching expectations
48
48
  * __COVERAGE DRIFT__
49
+ * we are working to address this early in the 3.0.x feature set
50
+ * https://github.com/danmayer/coverband/issues/118
49
51
  * if you never clear you have lines of code drift from when they were recorded
50
52
  * if you clear on every deploy you don't capture as useful of data
51
53
  * there is a tradeoff on accuracy and data value
@@ -70,8 +72,7 @@ Follow the below section to install and configure Coverband.
70
72
 
71
73
  ## Prerequisites
72
74
 
73
- * Coverband requires Ruby 2.1 to run the older and slower implementation (TracePoint).
74
- * Modern Coverband Ruby 2.3+ is recommended, this runs the (Coverage) implementation.
75
+ * Coverband 3.0 requres Ruby 2.3+
75
76
 
76
77
  ## Gem Installation
77
78
 
data/Rakefile CHANGED
@@ -4,7 +4,9 @@ require 'bundler/gem_tasks'
4
4
 
5
5
  import 'test/benchmarks/benchmark.rake'
6
6
 
7
- task default: :test
7
+ task default: [:test, :benchmarks]
8
+
9
+ task :test
8
10
  require 'rake/testtask'
9
11
  Rake::TestTask.new(:test) do |test|
10
12
  test.libs << 'lib' << 'test'
data/changes.md CHANGED
@@ -1,11 +1,9 @@
1
1
  # Future Roadmap
2
2
 
3
- ### Coverband 3.0
3
+ ### Coverband 4.0
4
4
 
5
5
  Will be the fully modern release that drops maintenance legacy support in favor of increased performance, ease of use, and maintainability.
6
6
 
7
- - expects to drop Tracepoint collection engine
8
- - expects to drop anything below Ruby 2.3
9
7
  - Release will be aimed as significantly simplifying ease of use
10
8
  - near zero config setup for Rails apps
11
9
  - add built-in support for easy loading via Railties
@@ -14,9 +12,25 @@ Will be the fully modern release that drops maintenance legacy support in favor
14
12
  - options on reporting
15
13
  - background reporting
16
14
  - or middleware reporting
15
+ - Support for file versions
16
+ - md5 or release tags
17
+ - add coverage timerange support
18
+ - Drop Simplecov dependency
19
+
20
+ ### Coverband 3.0.X
21
+
22
+ Will be a stable and fast release that drops maintenance legacy support in favor of increased performance and maintainability.
23
+
24
+ - expects to drop Tracepoint collection engine
25
+ - expects to drop anything below Ruby 2.3
26
+ - release begins to simplify ease of use
27
+ - drop collectors adapter
28
+ - reduced configuration options
17
29
  - improved web reporting
18
30
  - no longer relying directly on HTML in S3 but dynamically generated from any adapter
19
- - additional adapters including Memcache, S3, and ActiveRecord
31
+ - additional adapters: Memcache, S3, and ActiveRecord
32
+ - add additional config / protection options on Coverage clear
33
+ - add memory benchmarks showing memory overhead of coverband
20
34
 
21
35
  ### Coverband_jam_session
22
36
 
@@ -30,12 +44,14 @@ This is a possible gem to host experimental or more complex features, which woul
30
44
 
31
45
  # Alpha
32
46
 
33
- ### Coverband 3.0
47
+ ### Coverband 3.0.0
34
48
 
35
49
  * drops Tracepoint
36
50
  * drops Ruby <= 2.3.0
51
+ * drops JSON gem
37
52
  * rewrites redis store, for 60X perf
38
53
  * drops various other features not needed without Tracepoint
54
+ * drops memory cache
39
55
  * standardizes on Coverage array format vs sparse hash
40
56
 
41
57
  # Released
data/coverband.gemspec CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency 'aws-sdk', '~> 2'
23
23
  spec.add_development_dependency 'bundler', '~> 1.3'
24
- spec.add_development_dependency 'classifier-reborn'
25
24
  spec.add_development_dependency 'mocha', '~> 0.14.0'
26
25
  spec.add_development_dependency 'rack'
27
26
  spec.add_development_dependency 'rack-test'
@@ -29,11 +28,12 @@ Gem::Specification.new do |spec|
29
28
  spec.add_development_dependency 'test-unit'
30
29
  spec.add_development_dependency 'redis'
31
30
  spec.add_development_dependency 'benchmark-ips'
31
+ # used for benchmarking and tests
32
+ spec.add_development_dependency 'classifier-reborn'
32
33
  # add when debugging
33
34
  # require 'byebug'; byebug
34
35
  spec.add_development_dependency 'byebug'
35
- # deprecate when dropping support for older ruby
36
- spec.add_runtime_dependency 'json'
36
+
37
37
  # todo make an optional dependency for simplecov reports
38
38
  # also likely should just require simplecov-html not the whole lib
39
39
  spec.add_runtime_dependency 'simplecov', '> 0.11.1'
@@ -7,93 +7,91 @@ module Coverband
7
7
  # it helps with filtering, normalization, etc for final reprort generation
8
8
  ###
9
9
  class Base
10
- def self.report(store, _options = {})
11
- scov_style_report = get_current_scov_data_imp(store, root_paths)
10
+ class << self
11
+ def report(store, _options = {})
12
+ scov_style_report = get_current_scov_data_imp(store, root_paths)
12
13
 
13
- if Coverband.configuration.verbose
14
- msg = "report:\n #{scov_style_report.inspect}"
15
- Coverband.configuration.logger.debug msg
14
+ if Coverband.configuration.verbose
15
+ msg = "report:\n #{scov_style_report.inspect}"
16
+ Coverband.configuration.logger.debug msg
17
+ end
18
+ scov_style_report
16
19
  end
17
- scov_style_report
18
- end
19
20
 
20
- # protected
21
- # below are all not public API
22
- # but as they are class methods protected doesn't really do anything
21
+ protected
23
22
 
24
- def self.root_paths
25
- roots = Coverband.configuration.root_paths
26
- roots << "#{current_root}/"
27
- roots
28
- end
29
-
30
- def self.current_root
31
- File.expand_path(Coverband.configuration.root)
32
- end
33
-
34
- def self.fix_file_names(report_hash, roots)
35
- if Coverband.configuration.verbose
36
- Coverband.configuration.logger.info "fixing root: #{roots.join(', ')}"
23
+ def root_paths
24
+ roots = Coverband.configuration.root_paths
25
+ roots << "#{current_root}/"
26
+ roots
37
27
  end
38
28
 
39
- fixed_report = {}
40
- # normalize names across servers
41
- report_hash.each_pair do |key, vals|
42
- filename = filename_from_key(key, roots)
43
- if fixed_report.key?(filename)
44
- fixed_report[filename] = merge_arrays(fixed_report[filename], vals)
45
- else
46
- fixed_report[filename] = vals
47
- end
29
+ def current_root
30
+ File.expand_path(Coverband.configuration.root)
48
31
  end
49
- fixed_report
50
- end
51
32
 
52
- # > merge_arrays([nil,0,0,1,0,1],[nil,nil,0,1,0,0])
53
- # > [nil,0,0,1,0,1]
54
- def self.merge_arrays(first, second)
55
- merged = []
56
- longest = first.length > second.length ? first : second
33
+ def fix_file_names(report_hash, roots)
34
+ if Coverband.configuration.verbose
35
+ Coverband.configuration.logger.info "fixing root: #{roots.join(', ')}"
36
+ end
57
37
 
58
- longest.each_with_index do |_line, index|
59
- merged[index] = if first[index] || second[index]
60
- (first[index].to_i + second[index].to_i)
61
- end
38
+ # normalize names across servers
39
+ report_hash.each_with_object({}) do |(key, vals), fixed_report|
40
+ filename = filename_from_key(key, roots)
41
+ fixed_report[filename] = if fixed_report.key?(filename)
42
+ merge_arrays(fixed_report[filename], vals)
43
+ else
44
+ vals
45
+ end
46
+ end
62
47
  end
63
48
 
64
- merged
65
- end
49
+ # > merge_arrays([nil,0,0,1,0,1],[nil,nil,0,1,0,0])
50
+ # > [nil,0,0,1,0,1]
51
+ def merge_arrays(first, second)
52
+ merged = []
53
+ longest = first.length > second.length ? first : second
66
54
 
67
- def self.filename_from_key(key, roots)
68
- filename = key
69
- roots.each do |root|
70
- filename = filename.gsub(/^#{root}/, './')
55
+ longest.each_with_index do |_line, index|
56
+ merged[index] = if first[index] || second[index]
57
+ (first[index].to_i + second[index].to_i)
58
+ end
59
+ end
60
+
61
+ merged
71
62
  end
72
- # the filename for SimpleCov is expected to be a full path.
73
- # roots.last should be roots << current_root}/
74
- # a fully expanded path of config.root
75
- filename = filename.gsub('./', roots.last)
76
- filename
77
- end
78
63
 
79
- ###
80
- # why do we need to merge covered files data?
81
- # basically because paths on machines or deployed hosts could be different, so
82
- # two different keys could point to the same filename or `line_key`
83
- # this logic should be pushed to base report
84
- # TODO: think we are filtering based on ignore while sending to the store
85
- # and as we pull it out here
86
- ###
87
- def self.get_current_scov_data_imp(store, roots)
88
- scov_style_report = {}
89
- store.coverage.each_pair do |key, line_data|
90
- next if Coverband.configuration.ignore.any? { |i| key.match(i) }
91
- next unless line_data
92
- scov_style_report[key] = line_data
64
+ def filename_from_key(key, roots)
65
+ filename = key
66
+ roots.each do |root|
67
+ filename = filename.gsub(/^#{root}/, './')
68
+ end
69
+ # the filename for SimpleCov is expected to be a full path.
70
+ # roots.last should be roots << current_root}/
71
+ # a fully expanded path of config.root
72
+ filename = filename.gsub('./', roots.last)
73
+ filename
93
74
  end
94
75
 
95
- scov_style_report = fix_file_names(scov_style_report, roots)
96
- scov_style_report
76
+ ###
77
+ # why do we need to merge covered files data?
78
+ # basically because paths on machines or deployed hosts could be different, so
79
+ # two different keys could point to the same filename or `line_key`
80
+ # this logic should be pushed to base report
81
+ # TODO: think we are filtering based on ignore while sending to the store
82
+ # and as we also pull it out here
83
+ ###
84
+ def get_current_scov_data_imp(store, roots)
85
+ scov_style_report = {}
86
+ store.coverage.each_pair do |key, line_data|
87
+ next if Coverband.configuration.ignore.any? { |i| key.match(i) }
88
+ next unless line_data
89
+ scov_style_report[key] = line_data
90
+ end
91
+
92
+ scov_style_report = fix_file_names(scov_style_report, roots)
93
+ scov_style_report
94
+ end
97
95
  end
98
96
  end
99
97
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coverband
4
- VERSION = '3.0.0.alpha'
4
+ VERSION = '3.0.0.alpha2'
5
5
  end
@@ -35,12 +35,12 @@ namespace :benchmarks do
35
35
  def clone_classifier
36
36
  # rubocop:disable Style/IfUnlessModifier
37
37
  unless Dir.exist? classifier_dir
38
- system "git clone git@github.com:jekyll/classifier-reborn.git #{classifier_dir}"
38
+ system "git clone https://github.com/jekyll/classifier-reborn.git #{classifier_dir}"
39
39
  end
40
40
  # rubocop:enable Style/IfUnlessModifier
41
41
  end
42
42
 
43
- desc 'setup standard benchmark'
43
+ # desc 'setup standard benchmark'
44
44
  task :setup do
45
45
  clone_classifier
46
46
  $LOAD_PATH.unshift(File.join(classifier_dir, 'lib'))
@@ -57,7 +57,6 @@ namespace :benchmarks do
57
57
  # make sure to be plugged in while benchmarking ;) Otherwise you get very unreliable results
58
58
  require 'classifier-reborn'
59
59
  if ENV['COVERAGE']
60
- puts 'Coverage library loaded and started'
61
60
  require 'coverage'
62
61
  ::Coverage.start
63
62
  end
@@ -76,45 +75,25 @@ namespace :benchmarks do
76
75
  redis_namespace: 'coverband_bench')
77
76
  end
78
77
 
79
- desc 'set up coverband tracepoint Redis'
78
+ # desc 'set up coverband with Redis'
80
79
  task :setup_redis do
81
80
  Coverband.configure do |config|
82
- config.redis = Redis.new
83
- config.root = Dir.pwd
84
- config.percentage = 100.0
85
- config.logger = $stdout
86
- config.collector = 'trace'
87
- config.memory_caching = ENV['MEMORY_CACHE'] ? true : false
88
- config.store = benchmark_redis_store
81
+ config.redis = Redis.new
82
+ config.root = Dir.pwd
83
+ config.reporting_frequency = 100.0
84
+ config.logger = $stdout
85
+ config.store = benchmark_redis_store
89
86
  end
90
87
  end
91
88
 
92
- desc 'set up coverband tracepoint filestore'
89
+ # desc 'set up coverband with filestore'
93
90
  task :setup_file do
94
91
  Coverband.configure do |config|
95
- config.root = Dir.pwd
96
- config.percentage = 100.0
97
- config.logger = $stdout
98
- config.collector = 'trace'
99
- config.memory_caching = ENV['MEMORY_CACHE'] ? true : false
100
- file_path = '/tmp/benchmark_store.json'
101
- config.store = Coverband::Adapters::FileStore.new(file_path)
102
- end
103
- end
104
-
105
- ###
106
- # This benchmark always needs to be run last
107
- # as requiring coverage changes how Ruby interprets the code
108
- ###
109
- desc 'set up coverband with coverage Redis'
110
- task :setup_coverage do
111
- Coverband.configure do |config|
112
- config.root = Dir.pwd
113
- config.percentage = 100.0
114
- config.logger = $stdout
115
- config.collector = 'coverage'
116
- config.memory_caching = ENV['MEMORY_CACHE'] ? true : false
117
- config.store = benchmark_redis_store
92
+ config.root = Dir.pwd
93
+ config.reporting_frequency = 100.0
94
+ config.logger = $stdout
95
+ file_path = '/tmp/benchmark_store.json'
96
+ config.store = Coverband::Adapters::FileStore.new(file_path)
118
97
  end
119
98
  end
120
99
 
@@ -155,11 +134,9 @@ namespace :benchmarks do
155
134
  Benchmark.ips do |x|
156
135
  x.config(time: 12, warmup: 5, suite: suite)
157
136
  x.report 'coverband' do
158
- Coverband::Collectors::Coverage.instance.sample do
159
- work
160
- end
137
+ work
138
+ Coverband::Collectors::Coverage.instance.report_coverage
161
139
  end
162
- Coverband::Collectors::Coverage.instance.stop
163
140
  x.report 'no coverband' do
164
141
  work
165
142
  end
@@ -200,69 +177,51 @@ namespace :benchmarks do
200
177
  end
201
178
  end
202
179
 
203
- def reporting_memorycache_speed
204
- report = fake_report
205
- redis_store = benchmark_redis_store
206
- cache_store = Coverband::Adapters::MemoryCacheStore.new(redis_store)
207
-
208
- 5.times do
209
- redis_store.save_report(report)
210
- cache_store.save_report(report)
211
- adjust_report(report)
212
- end
213
- Benchmark.ips do |x|
214
- x.config(time: 15, warmup: 5)
215
- x.report('store_redis_reports') do
216
- redis_store.save_report(report)
217
- adjust_report(report)
218
- end
219
- x.report('store_cache_reports') do
220
- cache_store.save_report(report)
221
- adjust_report(report)
222
- end
223
- x.compare!
224
- end
225
- end
226
-
227
180
  desc 'runs benchmarks on reporting large sets of files to redis'
228
181
  task redis_reporting: [:setup] do
229
182
  puts 'runs benchmarks on reporting large sets of files to redis'
230
183
  reporting_speed
231
184
  end
232
185
 
233
- desc 'benchmarks: reporting large sets of files to redis using memory cache'
234
- task cache_reporting: [:setup] do
235
- puts 'benchmarks: reporting large sets of files to redis using memory cache'
236
- reporting_memorycache_speed
237
- end
238
-
239
- desc 'runs benchmarks on default redis setup'
186
+ # desc 'runs benchmarks on default redis setup'
240
187
  task run_redis: [:setup, :setup_redis] do
241
- puts 'Coverband tracepoint configured with default Redis store'
242
- run_work
188
+ puts 'Coverband configured with default Redis store'
189
+ run_work(true)
243
190
  end
244
191
 
245
- desc 'runs benchmarks file store'
192
+ # desc 'runs benchmarks file store'
246
193
  task run_file: [:setup, :setup_file] do
247
- puts 'Coverband tracepoint configured with file store'
248
- run_work
194
+ puts 'Coverband configured with file store'
195
+ run_work(true)
249
196
  end
250
197
 
251
- desc 'runs benchmarks coverage'
252
- task run_coverage: [:setup, :setup_coverage] do
253
- puts 'Coverband Coverage configured with to use default Redis store'
254
- run_work(true)
198
+ desc 'benchmarks external requests to coverband_demo site'
199
+ task :coverband_demo do
200
+ # for local testing
201
+ # puts `ab -n 200 -c 5 "http://127.0.0.1:3000/posts"`
202
+ puts `ab -n 500 -c 5 "https://coverband-demo.herokuapp.com/posts"`
203
+ end
204
+
205
+ desc 'compare Coverband Ruby Coverage with Filestore with normal Ruby'
206
+ task :compare_file do
207
+ puts 'comparing Coverage loaded/not, this takes some time for output...'
208
+ puts 'coverage loaded'
209
+ puts `COVERAGE=true rake benchmarks:run_file`
210
+ puts 'just the work'
211
+ puts `rake benchmarks:run_file`
255
212
  end
256
213
 
257
- desc 'compare Coverband Ruby Coverage with normal Ruby'
258
- task :compare_coverage do
214
+ desc 'compare Coverband Ruby Coverage with Redis and normal Ruby'
215
+ task :compare_redis do
259
216
  puts 'comparing Coverage loaded/not, this takes some time for output...'
260
- puts `COVERAGE=true rake benchmarks:run_coverage`
261
- puts `rake benchmarks:run_coverage`
217
+ puts 'coverage loaded'
218
+ puts `COVERAGE=true rake benchmarks:run_redis`
219
+ puts 'just the work'
220
+ puts `rake benchmarks:run_redis`
262
221
  end
263
222
  end
264
223
 
265
224
  desc 'runs benchmarks'
266
- task benchmarks: ['benchmarks:run_file',
267
- 'benchmarks:run_redis',
268
- 'benchmarks:compare_coverage']
225
+ task benchmarks: ['benchmarks:redis_reporting',
226
+ 'benchmarks:compare_file',
227
+ 'benchmarks:compare_redis']
@@ -35,8 +35,8 @@ class FullStackTest < Test::Unit::TestCase
35
35
 
36
36
  expected = nil
37
37
  # TODO: read the html to test it matches expectations? or return data as a hash?
38
- actual = Coverband::Reporters::SimpleCovReport.report(Coverband.configuration.store, open_report: false)
39
- assert_equal expected, actual
38
+ # actual = Coverband::Reporters::SimpleCovReport.report(Coverband.configuration.store, open_report: false)
39
+ # assert_equal expected, actual
40
40
  end
41
41
 
42
42
  private
@@ -13,7 +13,8 @@ class ReportsBaseTest < Test::Unit::TestCase
13
13
  # the code takes config.root expands and adds a '/' for the final path in roots
14
14
  roots = ['/app/', '/full/remote_app/path/']
15
15
 
16
- assert_equal '/full/remote_app/path/is/a/path.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
16
+ expected_path = '/full/remote_app/path/is/a/path.rb'
17
+ assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
17
18
  end
18
19
 
19
20
  test 'filename_from_key fix filename a changing deploy path with double quotes' do
@@ -27,7 +28,8 @@ class ReportsBaseTest < Test::Unit::TestCase
27
28
  # note to get regex to work for changing deploy directories it must be double escaped in double quotes or use single qoutes
28
29
  roots = ['/box/apps/app_name/releases/\\d+/', '/full/remote_app/path/']
29
30
 
30
- assert_equal '/full/remote_app/path/app/models/user.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
31
+ expected_path = '/full/remote_app/path/app/models/user.rb'
32
+ assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
31
33
  end
32
34
 
33
35
  test 'filename_from_key fix filename a changing deploy path with single quotes' do
@@ -41,7 +43,8 @@ class ReportsBaseTest < Test::Unit::TestCase
41
43
  # note to get regex to work for changing deploy directories it must be double escaped in double quotes or use single qoutes
42
44
  roots = ['/box/apps/app_name/releases/\d+/', '/full/remote_app/path/']
43
45
 
44
- assert_equal '/full/remote_app/path/app/models/user.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
46
+ expected_path = '/full/remote_app/path/app/models/user.rb'
47
+ assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
45
48
  end
46
49
 
47
50
  test 'filename_from_key leave filename from a key with a local path' do
@@ -54,7 +57,8 @@ class ReportsBaseTest < Test::Unit::TestCase
54
57
  # the code takes config.root expands and adds a '/' for the final path in roots
55
58
  roots = ['/app/', '/full/remote_app/path/']
56
59
 
57
- assert_equal '/full/remote_app/path/is/a/path.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
60
+ expected_path = '/full/remote_app/path/is/a/path.rb'
61
+ assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
58
62
  end
59
63
 
60
64
  test '#merge_arrays basic merge preserves order and counts' do
@@ -62,7 +66,7 @@ class ReportsBaseTest < Test::Unit::TestCase
62
66
  second = [nil, 0, 1, 0, 0]
63
67
  expects = [0, 0, 2, 0, 1]
64
68
 
65
- assert_equal expects, Coverband::Reporters::Base.merge_arrays(first, second)
69
+ assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
66
70
  end
67
71
 
68
72
  test '#merge_arrays basic merge preserves order and counts different lengths' do
@@ -70,7 +74,7 @@ class ReportsBaseTest < Test::Unit::TestCase
70
74
  second = [nil, 0, 1, 0, 0, 0, 0, 1]
71
75
  expects = [0, 0, 2, 0, 1, 0, 0, 1]
72
76
 
73
- assert_equal expects, Coverband::Reporters::Base.merge_arrays(first, second)
77
+ assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
74
78
  end
75
79
 
76
80
  test '#merge_arrays basic merge preserves nils' do
@@ -78,7 +82,7 @@ class ReportsBaseTest < Test::Unit::TestCase
78
82
  second = [0, 1, 2, nil, 0, 1, 2]
79
83
  expects = [0, 2, 4, nil, 0, 1, 2]
80
84
 
81
- assert_equal expects, Coverband::Reporters::Base.merge_arrays(first, second)
85
+ assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
82
86
  end
83
87
 
84
88
  test "#get_current_scov_data_imp doesn't ignore folders with default ignore keys" do
@@ -102,6 +106,6 @@ class ReportsBaseTest < Test::Unit::TestCase
102
106
  File.stubs(:exist?).returns(true)
103
107
  File.stubs(:foreach).returns(['line 1', 'line2', 'line3', 'line4', 'line5', 'line6'])
104
108
 
105
- assert_equal expected, Coverband::Reporters::Base.get_current_scov_data_imp(store, roots)
109
+ assert_equal expected, Coverband::Reporters::Base.send(:get_current_scov_data_imp, store, roots)
106
110
  end
107
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha
4
+ version: 3.0.0.alpha2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-27 00:00:00.000000000 Z
11
+ date: 2018-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: classifier-reborn
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: mocha
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +137,7 @@ dependencies:
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
- name: byebug
140
+ name: classifier-reborn
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - ">="
@@ -165,13 +151,13 @@ dependencies:
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
- name: json
154
+ name: byebug
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - ">="
172
158
  - !ruby/object:Gem::Version
173
159
  version: '0'
174
- type: :runtime
160
+ type: :development
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
@@ -263,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
249
  version: 1.3.1
264
250
  requirements: []
265
251
  rubyforge_project:
266
- rubygems_version: 2.5.1
252
+ rubygems_version: 2.7.3
267
253
  signing_key:
268
254
  specification_version: 4
269
255
  summary: Rack middleware to help measure production code usage (LOC runtime usage)