Module: SimpleCov::Combine::ResultsCombiner
- Defined in:
 - lib/simplecov/combine/results_combiner.rb
 
Overview
There might be reports from different kinds of tests, e.g. RSpec and Cucumber. We need to combine their results into unified one. This class does that. To unite the results on file basis, it leverages the combine of lines and branches inside each file within given results.
Class Method Summary collapse
- 
  
    
      .combine(*results)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Combine process explanation => ResultCombiner: define all present files between results and start combine on file level.
 - 
  
    
      .combine_file_coverage(coverage_a, coverage_b)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Combine two files coverage results.
 - 
  
    
      .combine_result_sets(combined_results, result)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Manage combining results on files level.
 
Class Method Details
.combine(*results) ⇒ Hash
Combine process explanation
> ResultCombiner: define all present files between results and start combine on file level.
> FileCombiner: collect result of next combine levels lines and branches.
> LinesCombiner: combine lines results.
> BranchesCombiner: combine branches results.
      22 23 24 25 26  | 
    
      # File 'lib/simplecov/combine/results_combiner.rb', line 22 def combine(*results) results.reduce({}) do |combined_results, next_result| combine_result_sets(combined_results, next_result) end end  | 
  
.combine_file_coverage(coverage_a, coverage_b) ⇒ Hash
Combine two files coverage results
      55 56 57  | 
    
      # File 'lib/simplecov/combine/results_combiner.rb', line 55 def combine_file_coverage(coverage_a, coverage_b) Combine.combine(Combine::FilesCombiner, coverage_a, coverage_b) end  | 
  
.combine_result_sets(combined_results, result) ⇒ Hash
Manage combining results on files level
      36 37 38 39 40 41 42 43 44 45  | 
    
      # File 'lib/simplecov/combine/results_combiner.rb', line 36 def combine_result_sets(combined_results, result) results_files = combined_results.keys | result.keys results_files.each_with_object({}) do |file_name, file_combination| file_combination[file_name] = combine_file_coverage( combined_results[file_name], result[file_name] ) end end  |