module SimpleCov::ResultMerger

def merged_result


for the result consisting of a join on all source result's names
SimpleCov::Result with merged coverage data and the command_name
Gets all SimpleCov::Results from cache, merges them and produces a new
def merged_result
  merged = {}
  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).join(", ")
  result
end

def results

dropped. Returns an array of SimpleCov::Result items.
All results that are above the SimpleCov.merge_timeout will be
of SimpleCov::Result from that.
Gets the resultset hash and re-creates all included instances
def results
  results = []
  resultset.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
    end
  end
  results
end

def resultset

Loads the cached resultset from YAML and returns it as a Hash
def resultset
  return {} unless File.exist?(resultset_path)
  YAML.load(File.read(resultset_path))
end

def resultset_path

The path to the resultset.yml cache file
def resultset_path
  File.join(SimpleCov.coverage_path, 'resultset.yml')
end

def store_result(result)

Saves the given SimpleCov::Result in the resultset cache
def store_result(result)
  new_set = resultset
  command_name, data = result.to_hash.first
  new_set[command_name] = data
  File.open(resultset_path, "w+") do |f|
    f.puts new_set.to_yaml
  end
  true
end