Module: CrossSpec

Defined in:
lib/cross_spec.rb,
lib/cross_spec/spec.rb,
lib/cross_spec/client.rb,
lib/cross_spec/config.rb,
lib/cross_spec/message.rb,
lib/cross_spec/version.rb,
lib/cross_spec/kafka_client.rb,
lib/cross_spec/task_message.rb,
lib/cross_spec/service_message.rb

Defined Under Namespace

Classes: Client, Config, FailureBeacon, KafkaClient, Message, ServiceMessage, Spec, SpecWaiting, TaskMessage

Constant Summary collapse

FAIL_TASK =
"cross_spec:failure".freeze
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.beacon(task, data = nil, biomarkers = nil) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/cross_spec.rb', line 51

def self.beacon(task, data = nil, biomarkers = nil)
  str = JSON.dump(
    task: task,
    biomarkers: biomarkers || DistributedTracing.get,
    data: data
  )
  config.client.broadcast(str)
end

.configObject



30
31
32
33
34
# File 'lib/cross_spec.rb', line 30

def self.config
  return @config if defined?(@config)
  @config = Config.new
  @config
end

.configure {|@config| ... } ⇒ Object

Yields:



25
26
27
28
# File 'lib/cross_spec.rb', line 25

def self.configure
  @config = Config.new
  yield(@config)
end

.failure_beacon!(data = nil) ⇒ Object



47
48
49
# File 'lib/cross_spec.rb', line 47

def self.failure_beacon!(data = nil)
  beacon(FAIL_TASK, data)
end

.handle(service, &block) ⇒ Object



36
37
38
39
40
41
# File 'lib/cross_spec.rb', line 36

def self.handle(service, &block)
  config.handlers[service] = Proc.new do |*args|
    block.call(*args)
    nil
  end
end

.listen!Object



43
44
45
# File 'lib/cross_spec.rb', line 43

def self.listen!
  config.client.listen!
end