Class: ActiveMutator::Reporter::Json

Inherits:
Object
  • Object
show all
Defined in:
lib/active_mutator/reporter/json.rb

Instance Method Summary collapse

Constructor Details

#initialize(out: $stdout) ⇒ Json

Returns a new instance of Json.



6
7
8
# File 'lib/active_mutator/reporter/json.rb', line 6

def initialize(out: $stdout)
  @out = out
end

Instance Method Details

#on_result(result) ⇒ Object



10
# File 'lib/active_mutator/reporter/json.rb', line 10

def on_result(result); end

#summary(results, invalid_count:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/active_mutator/reporter/json.rb', line 12

def summary(results, invalid_count:)
  counts = results.group_by(&:status).transform_values(&:size)
  @out.puts JSON.pretty_generate(
    "score" => Terminal.score(counts),
    "counts" => counts.transform_keys(&:to_s),
    "invalid" => invalid_count,
    "results" => results.map { |r| serialize(r) },
    "exit_reason" => counts.fetch(:survived, 0).positive? ? "unaccepted_survivors" : "clean"
  )
end