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.
20 21 22 23 24 25 26 27 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 20 def initialize @unmet_criteria = [ EventThreadFinished, StdoutThreadFinished, StderrThreadFinished, ProcessExited, ] end |
Instance Method Details
#event_thread_finished! ⇒ Object
35 36 37 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 35 def event_thread_finished! @unmet_criteria.delete EventThreadFinished end |
#received_exitstatus! ⇒ Object
47 48 49 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 47 def received_exitstatus! @unmet_criteria.delete ProcessExited end |
#received_timeout! ⇒ Object
51 52 53 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 51 def received_timeout! @unmet_criteria.delete ProcessExited end |
#satisfied? ⇒ Boolean
finish criteria are satisfied, we can stop processing events
31 32 33 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 31 def satisfied? @unmet_criteria.empty? end |
#stderr_thread_finished! ⇒ Object
43 44 45 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 43 def stderr_thread_finished! @unmet_criteria.delete StderrThreadFinished end |
#stdout_thread_finished! ⇒ Object
39 40 41 |
# File 'lib/seeing_is_believing/event_stream/consumer.rb', line 39 def stdout_thread_finished! @unmet_criteria.delete StdoutThreadFinished end |