class EventRouter::Destination
Constants
- DEFAULT_ATTRIBUTES
Constants
Attributes
handler[R]
Attributes
handler_method[R]
Attributes
name[R]
Attributes
options[R]
Attributes
payload_method[R]
Attributes
prefetch_payload[R]
Attributes
Public Class Methods
new(name, handler:, **opts)
click to toggle source
Methods
# File lib/event_router/destination.rb, line 21 def initialize(name, handler:, **opts) opts = DEFAULT_ATTRIBUTES.merge(opts) @name = name @handler = handler @handler_method = opts.delete(:handler_method) @prefetch_payload = opts.delete(:prefetch_payload) @payload_method = opts.delete(:payload_method) || "#{name}_payload" @options = opts end
Public Instance Methods
extra_payload(event)
click to toggle source
# File lib/event_router/destination.rb, line 44 def extra_payload(event) return nil unless event.respond_to?(payload_method) event.send(payload_method) end
prefetch_payload?()
click to toggle source
# File lib/event_router/destination.rb, line 40 def prefetch_payload? @prefetch_payload end
process(event, payload)
click to toggle source
# File lib/event_router/destination.rb, line 32 def process(event, payload) handler.send( handler_method || event.name, event: event, payload: payload ) end