Class: SeeingIsBelieving::EventStream::Consumer::FinishCriteria
- Inherits:
-
Object
- Object
- SeeingIsBelieving::EventStream::Consumer::FinishCriteria
- 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
- #event_thread_finished! ⇒ Object
-
#initialize ⇒ FinishCriteria
constructor
A new instance of FinishCriteria.
- #received_exitstatus! ⇒ Object
- #received_timeout! ⇒ Object
-
#satisfied? ⇒ Boolean
finish criteria are satisfied, we can stop processing events.
- #stderr_thread_finished! ⇒ Object
- #stdout_thread_finished! ⇒ Object
Constructor Details
#initialize ⇒ FinishCriteria
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
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 |