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

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

Overview

Contemplated doing FinishCriteria in binary, but the cost of doing it with an array like this is negligible and it has the nice advantage that the elements in the array are named # so if I ever look at it, I don’t have to tranlsate a number to figure out the names gist.github.com/JoshCheek/10deb07277b6c85efc7b5e65c007785d

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.



24
25
26
27
28
29
30
31
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 24

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

Instance Method Details

#event_thread_finished!Object



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

def event_thread_finished!
  @unmet_criteria.delete EventThreadFinished
end

#received_exitstatus!Object



51
52
53
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 51

def received_exitstatus!
  @unmet_criteria.delete ProcessExited
end

#received_timeout!Object



55
56
57
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 55

def received_timeout!
  @unmet_criteria.delete ProcessExited
end

#satisfied?Boolean

finish criteria are satisfied, we can stop processing events

Returns:

  • (Boolean)


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

def satisfied?
  @unmet_criteria.empty?
end

#stderr_thread_finished!Object



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

def stderr_thread_finished!
  @unmet_criteria.delete StderrThreadFinished
end

#stdout_thread_finished!Object



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

def stdout_thread_finished!
  @unmet_criteria.delete StdoutThreadFinished
end