Class: SeeingIsBelieving::EventStream::Consumer::FinishCriteria

Inherits:
Object
  • Object
show all
Defined in:
lib/seeing_is_believing/event_stream/consumer.rb

Constant Summary collapse

EventThreadFinished =
Module.new
StdoutThreadFinished =
Module.new
StderrThreadFinished =
Module.new
ProcessExited =
Module.new

Instance Method Summary collapse

Constructor Details

#initializeFinishCriteria

Returns a new instance of FinishCriteria.



16
17
18
19
20
21
22
23
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 16

def initialize
  @unmet_criteria = [
    EventThreadFinished,
    StdoutThreadFinished,
    StderrThreadFinished,
    ProcessExited,
  ]
end

Instance Method Details

#event_thread_finished!Object



31
32
33
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 31

def event_thread_finished!
  @unmet_criteria.delete EventThreadFinished
end

#received_exitstatus!Object



43
44
45
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 43

def received_exitstatus!
  @unmet_criteria.delete ProcessExited
end

#received_timeout!Object



47
48
49
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 47

def received_timeout!
  @unmet_criteria.delete ProcessExited
end

#satisfied?Boolean

finish criteria are satisfied, we can stop processing events

Returns:

  • (Boolean)


27
28
29
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 27

def satisfied?
  @unmet_criteria.empty?
end

#stderr_thread_finished!Object



39
40
41
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 39

def stderr_thread_finished!
  @unmet_criteria.delete StderrThreadFinished
end

#stdout_thread_finished!Object



35
36
37
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 35

def stdout_thread_finished!
  @unmet_criteria.delete StdoutThreadFinished
end