class Cadence::Workflow::Dispatcher
Constants
- WILDCARD
Attributes
handlers[R]
Public Class Methods
new()
click to toggle source
# File lib/cadence/workflow/dispatcher.rb, line 6 def initialize @handlers = Hash.new { |hash, key| hash[key] = [] } end
Public Instance Methods
dispatch(target, event_name, args = nil)
click to toggle source
# File lib/cadence/workflow/dispatcher.rb, line 14 def dispatch(target, event_name, args = nil) handlers_for(target, event_name).each do |handler| handler.call(*args) end end
register_handler(target, event_name, &handler)
click to toggle source
# File lib/cadence/workflow/dispatcher.rb, line 10 def register_handler(target, event_name, &handler) handlers[target] << [event_name, handler] end
Private Instance Methods
handlers_for(target, event_name)
click to toggle source
# File lib/cadence/workflow/dispatcher.rb, line 24 def handlers_for(target, event_name) handlers[target] .select { |(name, _)| name == event_name || name == WILDCARD } .map(&:last) end