class CrossSpec::SpecWaiting

Public Class Methods

new(tasks) click to toggle source
# File lib/cross_spec/spec.rb, line 3
def initialize(tasks)
  @positive_matches = 0
  @data = []
  @tasks = Array(tasks)
end

Public Instance Methods

data() click to toggle source
# File lib/cross_spec/spec.rb, line 31
def data
  @data
end
done?() click to toggle source
# File lib/cross_spec/spec.rb, line 27
def done?
  @positive_matches === @tasks.length
end
process(message) { |data, biomarkers| ... } click to toggle source
# File lib/cross_spec/spec.rb, line 9
def process(message, &block)
  return unless message.is_a?(TaskMessage)
  return unless @tasks.include?(message.task)

  positive_match = if block
    yield message.data, message.biomarkers
  elsif DistributedTracing.get.any?
    (message.biomarkers & DistributedTracing.get).any?
  else
    false
  end

  if positive_match
    increment_matches
    store_data(message)
  end
end

Private Instance Methods

increment_matches() click to toggle source
# File lib/cross_spec/spec.rb, line 37
def increment_matches
  @positive_matches += 1
end
store_data(message) click to toggle source
# File lib/cross_spec/spec.rb, line 41
def store_data(message)
  i = @tasks.index(message.task)
  @data[i] = message.data
end