PipelineDeals/mantle

View on GitHub
lib/mantle/message_router.rb

Summary

Maintainability
A
25 mins
Test Coverage
module Mantle
  class MessageRouter
    def initialize(channel, message)
      @channel, @message = channel, message
    end

    def route
      return unless @message

      Mantle.logger.debug("Routing message for #{@channel}")
      Mantle.logger.debug("Message: #{@message}")

      begin
        Mantle::Workers::ProcessWorker.perform_async(@channel, @message)
      rescue => e
        msg = "Unable to process Mantle message\n"
        msg += "#{e.class} #{e}\n"
        msg += "#{e.backtrace.nil? ? '' : e.backtrace.join("\n")}\n"
        msg += "Channel => #{@channel}\n"
        msg += "Message => #{@message}\n"
        Mantle.logger.error msg
      end
    end
  end
end