class Yael::Bus
Public Class Methods
Public Instance Methods
dispatch(name, stream:, payload:)
click to toggle source
# File lib/yael/bus.rb, line 33 def dispatch(name, stream:, payload:) stream = Event.stream_for(stream) unless stream.is_a?(String) DispatchJob.perform_later(name: name, stream: stream, payload: payload, created_at: DateTime.current) end
process(event)
click to toggle source
# File lib/yael/bus.rb, line 38 def process(event) routes.each do |route| route.dispatch(event) if route.matches? event.name end end
routes()
click to toggle source
# File lib/yael/bus.rb, line 25 def routes @routes ||= [] end
routing(&block)
click to toggle source
# File lib/yael/bus.rb, line 29 def routing(&block) @routes = DispatchMap.new(block).routes end