oneshot_coverage 0.1.3 → 0.2.0

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
2
  SHA256:
3
- metadata.gz: ef3bca3a46d9f9657d98ab2b9e386b7dd6a1b9c3dea5f31f8ae34989be481440
4
- data.tar.gz: 2987861d708d12f542fcb91ff6625aa03c698276f4c2c09e14145bbd39be0cd7
3
+ metadata.gz: 031ca916bcee96033586ba0e1c6f7a93129b8b758a1c297c9555d9de91bb14af
4
+ data.tar.gz: 0dd69d9959a49fc94518926d498cb3350ec1d952de2887853fa09b0497011c2d
5
5
  SHA512:
6
- metadata.gz: 8ebb6f777040477cc36b84e3a315374290b37460093f0b4817aa8ba7aae4d8e0a29c1fc9d07a2fd03dedd920031e296e6d68ca70cb35162e044e0be13b8030ca
7
- data.tar.gz: 1b6339856e574f43590430b3b397baae83547d6eb95e5ecbf8b0d1af6588fc5bea45bfacb4d33fb159096de430b78a07dd4a44420c91c9791171601a55501187
6
+ metadata.gz: 548640eb62924ec9d465fa6521c57fdf9cf1b2e63075a171bb24128d3dfbf8793e5f0165dd233ab898e7a9f7c63af431591eac5645fb1ed574d5a7dc26b7584a
7
+ data.tar.gz: 1017152226c61dd4e2d588f59c62cd2a9a6b4f9a126dece207b27e0fc11281b164cd7456b7a12a6146464092d2d58966d417d40f1910536c5a817b6cdf4bd25d
@@ -1,3 +1,3 @@
1
1
  module OneshotCoverage
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -20,9 +20,11 @@ module OneshotCoverage
20
20
  end
21
21
 
22
22
  class Reporter
23
- def initialize(target_path:, logger:)
23
+ def initialize(target_path:, logger:, max_emit_per_request:)
24
24
  @target_path = target_path
25
25
  @logger = logger
26
+ @buffer = []
27
+ @max_emit_per_request = max_emit_per_request
26
28
  if defined?(Bundler)
27
29
  @bundler_path = Bundler.bundle_path.to_s
28
30
  end
@@ -32,7 +34,9 @@ module OneshotCoverage
32
34
  Coverage.result(clear: true, stop: false).
33
35
  select { |k, v| is_target?(k, v) }.
34
36
  flat_map { |k, v| transform(k, v) }.
35
- each { |row| @logger.post(row) }
37
+ each { |row| @buffer << row }
38
+
39
+ @buffer.shift(emit_per_request).each { |row| @logger.post(row) }
36
40
  end
37
41
 
38
42
  def is_target?(filepath, value)
@@ -63,6 +67,10 @@ module OneshotCoverage
63
67
  def md5_hash_cache
64
68
  @md5_hash_cache ||= {}
65
69
  end
70
+
71
+ def emit_per_request
72
+ @max_emit_per_request || @buffer.size
73
+ end
66
74
  end
67
75
 
68
76
  module_function
@@ -80,7 +88,7 @@ module OneshotCoverage
80
88
  @reporter&.emit
81
89
  end
82
90
 
83
- def configure(target_path:, logger: OneshotCoverage::Logger::NullLogger.new)
91
+ def configure(target_path:, logger: OneshotCoverage::Logger::NullLogger.new, max_emit_per_request: nil)
84
92
  target_path_by_pathname =
85
93
  if target_path.is_a? Pathname
86
94
  target_path
@@ -90,6 +98,7 @@ module OneshotCoverage
90
98
  @reporter = OneshotCoverage::Reporter.new(
91
99
  target_path: target_path_by_pathname.cleanpath.to_s + "/",
92
100
  logger: logger,
101
+ max_emit_per_request: max_emit_per_request
93
102
  )
94
103
  end
95
104
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneshot_coverage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-19 00:00:00.000000000 Z
11
+ date: 2019-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler