class RKS::Event::Processor

Attributes

correlation_id[RW]
event[RW]
payload[RW]

Public Class Methods

current() click to toggle source
# File lib/rks/event/processor.rb, line 29
def current
  if @current
    @current.value
  else
    raise ProcessorNotInitialized, "#set_current_processor is needed"
  end
end
new(correlation_id:, event:, payload:) click to toggle source
# File lib/rks/event/processor.rb, line 10
def initialize(correlation_id:, event:, payload:)
  @correlation_id = correlation_id
  @event = event
  @payload = payload

  self.class.set_current_processor(self)
end
process(args) click to toggle source
# File lib/rks/event/processor.rb, line 37
def process(args)
  new(args).process
end
set_current_processor(processor) click to toggle source
# File lib/rks/event/processor.rb, line 25
def set_current_processor(processor)
  @current = Concurrent::ThreadLocalVar.new(processor)
end

Public Instance Methods

process() click to toggle source
# File lib/rks/event/processor.rb, line 18
def process
  Application.logger.with_rescue_and_duration_event(@correlation_id, @event, @payload) do
    RKS::Event::Handler.call(correlation_id: @correlation_id, event: @event, payload: @payload)
  end
end