module Barbeque::Message

Public Class Methods

parse(raw_message) click to toggle source

@param [Aws::SQS::Types::Message] raw_message @return [Barbeque::Message::Base]

# File lib/barbeque/message.rb, line 13
def parse(raw_message)
  body = JSON.parse(raw_message.body)
  klass = find_class(body['Type'])
  klass.new(raw_message, body)
rescue JSON::ParserError => e
  ExceptionHandler.handle_exception(e)
  InvalidMessage.new(raw_message, {})
end

Private Class Methods

find_class(type) click to toggle source
# File lib/barbeque/message.rb, line 24
def find_class(type)
  Message.const_get(type, false)
rescue NameError => e
  ExceptionHandler.handle_exception(e)
  InvalidMessage
end