class RailwayIpc::Handler

Attributes

block[R]

Public Class Methods

handle(&block) click to toggle source
# File lib/railway_ipc/handler.rb, line 9
def self.handle(&block)
  @block = block
end

Public Instance Methods

handle(message) click to toggle source
# File lib/railway_ipc/handler.rb, line 13
def handle(message)
  RailwayIpc.logger.info('Handling message', log_message_options(message))
  response = self.class.block.call(message)
  if response.success?
    RailwayIpc.logger.info('Successfully handled message', log_message_options(message))
  else
    RailwayIpc.logger.error('Failed to handle message', log_message_options(message))
  end

  response
end

Private Instance Methods

log_message_options(message) click to toggle source
# File lib/railway_ipc/handler.rb, line 27
def log_message_options(message)
  {
    feature: 'railway_ipc_consumer',
    protobuf: {
      type: message.class.name,
      data: message
    }
  }
end