Module: Evilution::MCP::MutateTool::ReportTrimmer

Defined in:
lib/evilution/mcp/mutate_tool/report_trimmer.rb

Constant Summary collapse

MINIMAL_KEYS =
%w[summary survived].freeze
FULL_DIFF_STRIP_KEYS =
%w[killed neutral equivalent unresolved unparseable].freeze
SUMMARY_DROP_KEYS =
%w[killed neutral equivalent unparseable].freeze

Class Method Summary collapse

Class Method Details

.call(json_string, verbosity:, survived_results:, config:, enricher:) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/evilution/mcp/mutate_tool/report_trimmer.rb', line 11

def self.call(json_string, verbosity:, survived_results:, config:, enricher:)
  data = ::JSON.parse(json_string)
  case verbosity
  when "full"
    FULL_DIFF_STRIP_KEYS.each { |key| strip_diffs(data, key) }
  when "summary"
    SUMMARY_DROP_KEYS.each { |key| data.delete(key) }
  when "minimal"
    data.keep_if { |key, _| MINIMAL_KEYS.include?(key) }
  end
  enricher.call(data, survived_results, config)
  ::JSON.generate(data)
end