Class: Kaisoku::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/kaisoku/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(adapter:, test_map:, collector: CoverageCollector.new, reporter: nil, rails_integration: nil) ⇒ Runner

Returns a new instance of Runner.



7
8
9
10
11
12
13
# File 'lib/kaisoku/runner.rb', line 7

def initialize(adapter:, test_map:, collector: CoverageCollector.new, reporter: nil, rails_integration: nil)
  @adapter = adapter
  @test_map = test_map
  @collector = collector
  @reporter = reporter
  @rails_integration = rails_integration || Rails::Integration.new(configuration: adapter.configuration)
end

Instance Method Details

#run(entities) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/kaisoku/runner.rb', line 15

def run(entities)
  results = []

  @rails_integration.wrap_reloader do
    @adapter.run(entities, reporter: @reporter) do |event, entity, payload = {}|
      case event
      when :entity_started
        @collector.start_entity
      when :entity_finished
        collection = @collector.finish_entity
        result = EntityResult.new(
          entity: entity,
          payload: payload,
          dependencies: collection.dependencies,
          collection_skipped: collection.skipped?
        )
        persist_result(result)
        results << result
      end
    end
  end

  results.to_h do |result|
    [result.entity.id, result.payload]
  end
end