summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/merge-simplecov74
1 files changed, 21 insertions, 53 deletions
diff --git a/scripts/merge-simplecov b/scripts/merge-simplecov
index 9504321e6d7..ab15b43bd0f 100755
--- a/scripts/merge-simplecov
+++ b/scripts/merge-simplecov
@@ -1,61 +1,29 @@
#!/usr/bin/env ruby
-begin
- load File.expand_path('../spring', __FILE__)
-rescue LoadError => e
- raise unless e.message.include?('spring')
-end
require 'simplecov'
-def read(file)
- return unless File.exist?(file)
- data = File.read(file)
- return if data.nil? || data.length < 2
- data
-end
-
-def load(file)
- begin
- JSON.parse(read(file))
- rescue
- {}
- end
-end
-
-def files
- Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json'))
-end
-
-def resultsfiles
- files.map { |file| load(file) }
-end
-
-def resultsets
- resultsfiles.reduce({}, :merge)
-end
-
-def all_results
- results = []
- resultsets.each do |command_name, data|
- result = SimpleCov::Result.from_hash(command_name => data)
- # Only add result if the timeout is above the configured threshold
- if (Time.now - result.created_at) < SimpleCov.merge_timeout
- results << result
+module SimpleCov
+ module ResultMerger
+ class << self
+ def resultset_files
+ Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json'))
+ end
+
+ def resultset_hashes
+ resultset_files.map do |path|
+ begin
+ JSON.parse(File.read(path))
+ rescue
+ {}
+ end
+ end
+ end
+
+ def resultset
+ resultset_hashes.reduce({}, :merge)
+ end
end
end
- results
-end
-
-def merged_result
- merged = {}
- results = all_results
- results.each do |result|
- merged = result.original_result.merge_resultset(merged)
- end
- result = SimpleCov::Result.new(merged)
- # Specify the command name
- result.command_name = results.map(&:command_name).sort.join(", ")
- result
end
# Ignore CI environment
@@ -64,4 +32,4 @@ ENV['CI_BUILD_NAME'] = nil
require_relative '../spec/simplecov_env'
-merged_result.format!
+SimpleCov::ResultMerger.merged_result.format!