coverband 6.1.5 → 6.1.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/changes.md +5 -0
- data/lib/coverband/adapters/hash_redis_store.rb +1 -3
- data/lib/coverband/collectors/view_tracker.rb +1 -1
- data/lib/coverband/utils/railtie.rb +1 -1
- data/lib/coverband/version.rb +1 -1
- data/lib/coverband.rb +5 -5
- data/test/benchmarks/benchmark.rake +7 -15
- data/test/coverband/track_key_test.rb +9 -9
- metadata +3 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 032cf0d003aefa2d222472e12412e352f5059cfffc93645810692e60b3dc6602
|
|
4
|
+
data.tar.gz: b094364d6cc2dbfbc2527209f4bf03025c06199443a0b9fa0380851afe7a00ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 14ce46ede0f55f2162878529c8226a022518df0a0a22c83ad323d0856fad43b99a9f694b3b629171b86872bfd16626da9772388cae5a665a5e00e1493ef81b8b
|
|
7
|
+
data.tar.gz: c394482fdfddfa2d70dab2453517f2c490e66e1b9ef463a5a097413deb41540158a13a0626a2f3c4e62fc263de3052df6d99c7c7765ddb9ae867074b5b943e94
|
data/changes.md
CHANGED
|
@@ -205,9 +205,7 @@ module Coverband
|
|
|
205
205
|
|
|
206
206
|
data = coverage_data_from_redis(data_from_redis)
|
|
207
207
|
timedata = coverage_time_data_from_redis(data_from_redis)
|
|
208
|
-
hash[file] = data_from_redis.
|
|
209
|
-
META_DATA_KEYS.include?(meta_data_key)
|
|
210
|
-
end.merge!("data" => data, "timedata" => timedata)
|
|
208
|
+
hash[file] = data_from_redis.slice(*META_DATA_KEYS).merge!("data" => data, "timedata" => timedata)
|
|
211
209
|
hash[file][LAST_UPDATED_KEY] =
|
|
212
210
|
(hash[file][LAST_UPDATED_KEY].nil? || hash[file][LAST_UPDATED_KEY] == "") ? nil : hash[file][LAST_UPDATED_KEY].to_i
|
|
213
211
|
hash[file].merge!(LAST_UPDATED_KEY => hash[file][LAST_UPDATED_KEY],
|
|
@@ -108,7 +108,7 @@ module Coverband
|
|
|
108
108
|
|
|
109
109
|
def concrete_target
|
|
110
110
|
if defined?(Rails.application)
|
|
111
|
-
Dir.glob("#{@project_directory}
|
|
111
|
+
Dir.glob("#{@project_directory}/**/app/{views,components}/**/*.html.{erb,haml,slim}")
|
|
112
112
|
else
|
|
113
113
|
[]
|
|
114
114
|
end
|
data/lib/coverband/version.rb
CHANGED
data/lib/coverband.rb
CHANGED
|
@@ -107,16 +107,16 @@ module Coverband
|
|
|
107
107
|
# @raise [ArgumentError] If the tracker_type is not supported
|
|
108
108
|
def self.track_key(tracker_type, key)
|
|
109
109
|
return false unless key
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
supported_trackers = [:view_tracker, :translations_tracker, :routes_tracker]
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
unless supported_trackers.include?(tracker_type)
|
|
114
|
-
raise ArgumentError, "Unsupported tracker type: #{tracker_type}. Must be one of: #{supported_trackers.join(
|
|
114
|
+
raise ArgumentError, "Unsupported tracker type: #{tracker_type}. Must be one of: #{supported_trackers.join(", ")}"
|
|
115
115
|
end
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
begin
|
|
118
118
|
tracker = configuration.send(tracker_type)
|
|
119
|
-
return false unless tracker
|
|
119
|
+
return false unless tracker&.respond_to?(:track_key)
|
|
120
120
|
|
|
121
121
|
tracker.track_key(key)
|
|
122
122
|
true
|
|
@@ -102,7 +102,7 @@ namespace :benchmarks do
|
|
|
102
102
|
lines = 45
|
|
103
103
|
non_nil_lines = 18
|
|
104
104
|
lines.times.map do |line|
|
|
105
|
-
|
|
105
|
+
(line < non_nil_lines) ? rand(5) : nil
|
|
106
106
|
end
|
|
107
107
|
end
|
|
108
108
|
|
|
@@ -146,7 +146,7 @@ namespace :benchmarks do
|
|
|
146
146
|
x.report("store_reports_all") { store.save_report(report) }
|
|
147
147
|
end
|
|
148
148
|
keys_subset = report.keys.first(100)
|
|
149
|
-
report_subset = report.
|
|
149
|
+
report_subset = report.slice(*keys_subset)
|
|
150
150
|
Benchmark.ips do |x|
|
|
151
151
|
x.config(time: 20, warmup: 5)
|
|
152
152
|
x.report("store_reports_subset") { store.save_report(report_subset) }
|
|
@@ -183,7 +183,7 @@ namespace :benchmarks do
|
|
|
183
183
|
|
|
184
184
|
def measure_memory_report_coverage
|
|
185
185
|
require "memory_profiler"
|
|
186
|
-
|
|
186
|
+
fake_report
|
|
187
187
|
store = benchmark_redis_store
|
|
188
188
|
store.clear!
|
|
189
189
|
mock_files(store)
|
|
@@ -258,37 +258,29 @@ namespace :benchmarks do
|
|
|
258
258
|
# about 2mb
|
|
259
259
|
puts(ObjectSpace.memsize_of(data) / 2**20)
|
|
260
260
|
|
|
261
|
-
|
|
261
|
+
JSON.parse(data)
|
|
262
262
|
# this seems to just show the value of the pointer
|
|
263
263
|
# puts(ObjectSpace.memsize_of(json_data) / 2**20)
|
|
264
264
|
# implies json takes 10-12 mb
|
|
265
265
|
puts(ObjectSpace.memsize_of_all / 2**20)
|
|
266
|
-
|
|
267
|
-
json_data = nil
|
|
268
266
|
GC.start
|
|
269
|
-
|
|
267
|
+
JSON.parse(data)
|
|
270
268
|
# this seems to just show the value of the pointer
|
|
271
269
|
# puts(ObjectSpace.memsize_of(json_data) / 2**20)
|
|
272
270
|
# implies json takes 10-12 mb
|
|
273
271
|
puts(ObjectSpace.memsize_of_all / 2**20)
|
|
274
|
-
|
|
275
|
-
json_data = nil
|
|
276
272
|
GC.start
|
|
277
|
-
|
|
273
|
+
JSON.parse(data)
|
|
278
274
|
# this seems to just show the value of the pointer
|
|
279
275
|
# puts(ObjectSpace.memsize_of(json_data) / 2**20)
|
|
280
276
|
# implies json takes 10-12 mb
|
|
281
277
|
puts(ObjectSpace.memsize_of_all / 2**20)
|
|
282
|
-
|
|
283
|
-
json_data = nil
|
|
284
278
|
GC.start
|
|
285
|
-
|
|
279
|
+
JSON.parse(data)
|
|
286
280
|
# this seems to just show the value of the pointer
|
|
287
281
|
# puts(ObjectSpace.memsize_of(json_data) / 2**20)
|
|
288
282
|
# implies json takes 10-12 mb
|
|
289
283
|
puts(ObjectSpace.memsize_of_all / 2**20)
|
|
290
|
-
|
|
291
|
-
json_data = nil
|
|
292
284
|
GC.start
|
|
293
285
|
puts(ObjectSpace.memsize_of_all / 2**20)
|
|
294
286
|
|
|
@@ -7,7 +7,7 @@ class TrackKeyTest < Minitest::Test
|
|
|
7
7
|
mock_view_tracker = mock
|
|
8
8
|
mock_view_tracker.expects(:track_key).with("view/path/index.html.erb").returns(true)
|
|
9
9
|
Coverband.configuration.expects(:view_tracker).returns(mock_view_tracker)
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
assert Coverband.track_key(:view_tracker, "view/path/index.html.erb")
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -23,7 +23,7 @@ class TrackKeyTest < Minitest::Test
|
|
|
23
23
|
|
|
24
24
|
test "track_key handles missing trackers" do
|
|
25
25
|
Coverband.configuration.expects(:view_tracker).returns(nil)
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
assert_equal false, Coverband.track_key(:view_tracker, "some_view")
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -31,7 +31,7 @@ class TrackKeyTest < Minitest::Test
|
|
|
31
31
|
mock_invalid_tracker = mock
|
|
32
32
|
mock_invalid_tracker.expects(:respond_to?).with(:track_key).returns(false)
|
|
33
33
|
Coverband.configuration.expects(:view_tracker).returns(mock_invalid_tracker)
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
assert_equal false, Coverband.track_key(:view_tracker, "some_view")
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -39,7 +39,7 @@ class TrackKeyTest < Minitest::Test
|
|
|
39
39
|
mock_translations_tracker = mock
|
|
40
40
|
mock_translations_tracker.expects(:track_key).with("translation.key").returns(true)
|
|
41
41
|
Coverband.configuration.expects(:translations_tracker).returns(mock_translations_tracker)
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
assert Coverband.track_key(:translations_tracker, "translation.key")
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -47,20 +47,20 @@ class TrackKeyTest < Minitest::Test
|
|
|
47
47
|
mock_routes_tracker = mock
|
|
48
48
|
mock_routes_tracker.expects(:track_key).with("index#show").returns(true)
|
|
49
49
|
Coverband.configuration.expects(:routes_tracker).returns(mock_routes_tracker)
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
assert Coverband.track_key(:routes_tracker, "index#show")
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
test "track_key logs error when tracking fails" do
|
|
55
55
|
mock_logger = mock
|
|
56
56
|
mock_logger.expects(:error).with(regexp_matches(/Failed to track key/))
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
mock_tracker = mock
|
|
59
59
|
mock_tracker.expects(:track_key).with("test_key").raises(StandardError.new("Test error"))
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
Coverband.configuration.expects(:translations_tracker).returns(mock_tracker)
|
|
62
62
|
Coverband.configuration.expects(:logger).returns(mock_logger)
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
assert_equal false, Coverband.track_key(:translations_tracker, "test_key")
|
|
65
65
|
end
|
|
66
|
-
end
|
|
66
|
+
end
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: coverband
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.1.
|
|
4
|
+
version: 6.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dan Mayer
|
|
8
8
|
- Karl Baum
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: benchmark-ips
|
|
@@ -517,7 +516,6 @@ metadata:
|
|
|
517
516
|
documentation_uri: https://github.com/danmayer/coverband
|
|
518
517
|
changelog_uri: https://github.com/danmayer/coverband/blob/main/changes.md
|
|
519
518
|
source_code_uri: https://github.com/danmayer/coverband
|
|
520
|
-
post_install_message:
|
|
521
519
|
rdoc_options: []
|
|
522
520
|
require_paths:
|
|
523
521
|
- lib
|
|
@@ -532,8 +530,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
532
530
|
- !ruby/object:Gem::Version
|
|
533
531
|
version: '0'
|
|
534
532
|
requirements: []
|
|
535
|
-
rubygems_version: 3.
|
|
536
|
-
signing_key:
|
|
533
|
+
rubygems_version: 3.6.9
|
|
537
534
|
specification_version: 4
|
|
538
535
|
summary: Rack middleware to measure production code usage (LOC runtime usage)
|
|
539
536
|
test_files: []
|