class DoubleDecker::Bus

Attributes

expected_agents[R]
finished[R]
run_id[R]

Public Class Methods

new(run_id, url: "redis://localhost", expected_agents: nil, redis: Redis.new(url: url)) click to toggle source
# File src/double_decker/bus.rb, line 11
def initialize(run_id, url: "redis://localhost", expected_agents: nil, redis: Redis.new(url: url))
  @store = redis
  @run_id = run_id
  @expected_agents = expected_agents
  setup!
end

Public Instance Methods

on_finished(&block) click to toggle source
# File src/double_decker/bus.rb, line 24
def on_finished(&block)
  @finished = block
end
register() click to toggle source
# File src/double_decker/bus.rb, line 18
def register
  agent = Agent.new(self, BusData.new(run_id, @store), expected_agents)
  agent.wait_for_expected_agents
  agent
end

Protected Instance Methods

setup!() click to toggle source
# File src/double_decker/bus.rb, line 30
def setup!
  @store.get(run_id) || @store.set(run_id, {}.to_json)
end