Class: Kommando::When
- Inherits:
-
Object
- Object
- Kommando::When
- Defined in:
- lib/kommando/when.rb
Constant Summary collapse
- VALID_EVENTS =
:start, :retry, :timeout, :error, :exit, :success, :failed
Instance Method Summary collapse
- #fire(event_name) ⇒ Object
-
#initialize(parent = nil) ⇒ When
constructor
A new instance of When.
- #register(event_name, block) ⇒ Object
Constructor Details
#initialize(parent = nil) ⇒ When
Returns a new instance of When.
4 5 6 7 8 |
# File 'lib/kommando/when.rb', line 4 def initialize(parent=nil) @parent = parent @whens = {} @fired = [] end |
Instance Method Details
#fire(event_name) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/kommando/when.rb', line 29 def fire(event_name) event_name_as_sym = event_name.to_sym validate_event_name(event_name_as_sym) @fired << event_name_as_sym debug "set #{event_name_as_sym} as fired" if blocks = @whens[event_name] debug "firing cbs for #{event_name_as_sym}" blocks.each do |block| debug "firing cb for #{event_name_as_sym}" if @parent block.call(@parent) else block.call end debug "fired cb for #{event_name_as_sym}" end else debug "no cbs for #{event_name_as_sym}" end end |
#register(event_name, block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/kommando/when.rb', line 10 def register(event_name, block) event_name_as_sym = event_name.to_sym validate_event_name(event_name_as_sym) @whens[event_name_as_sym] = if @whens[event_name_as_sym] @whens[event_name_as_sym] << block else [block] end if @fired.include? event_name_as_sym debug "cb firing as #{event_name_as_sym} already fired." block.call debug "cb fired as #{event_name_as_sym} already fired." else debug "cb for #{event_name_as_sym} registered, not fired." end end |