class Cucumber::Core::Report::Summary

def initialize(event_bus)

def initialize(event_bus)
  @previous_test_case = nil
  @test_cases = Test::Result::Summary.new
  @test_steps = Test::Result::Summary.new
  subscribe_to(event_bus)
end

def is_step?(test_step)

def is_step?(test_step)
  StepQueryVisitor.new(test_step).is_step?
end

def ok?(be_strict = false)

def ok?(be_strict = false)
  test_cases.ok?(be_strict)
end

def subscribe_to(event_bus)

def subscribe_to(event_bus)
  event_bus.on(:test_case_finished) do |event|
    if event.test_case != @previous_test_case
      @previous_test_case = event.test_case
      event.result.describe_to test_cases
    elsif event.result.passed?
      test_cases.flaky
      test_cases.decrement_failed
    end
  end
  event_bus.on(:test_step_finished) do |event|
    event.result.describe_to test_steps if is_step?(event.test_step)
  end
  self
end