class CrossSpec::Client
Public Class Methods
new(driver, handlers = {})
click to toggle source
# File lib/cross_spec/client.rb, line 3 def initialize(driver, handlers = {}) @driver = driver @handlers = Hash(handlers) end
Public Instance Methods
broadcast(str)
click to toggle source
# File lib/cross_spec/client.rb, line 8 def broadcast(str) @driver.broadcast(str) end
listen!() { |message| ... }
click to toggle source
# File lib/cross_spec/client.rb, line 12 def listen!(&block) @driver.each_message do |message| json = JSON.parse(message) message = if json.key?("service") ServiceMessage.from_json(json) elsif json.key?("task") TaskMessage.from_json(json) end next unless message result = if block_given? yield message elsif message.is_a?(TaskMessage) && @handlers[message.task] @handlers[message.task].call(message) elsif message.is_a?(ServiceMessage) && @handlers[message.service] @handlers[message.service].call(message) end return unless result.nil? end end