PipelineDeals/mantle

View on GitHub
lib/mantle.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'rubygems'
require 'redis'
require 'sidekiq'
require 'json'

begin
  require 'pry'
rescue LoadError
end

require_relative 'mantle/catch_up'
require_relative 'mantle/configuration'
require_relative 'mantle/error'
require_relative 'mantle/local_redis'
require_relative 'mantle/logger'
require_relative 'mantle/message'
require_relative 'mantle/message_bus'
require_relative 'mantle/message_handler'
require_relative 'mantle/message_handlers'
require_relative 'mantle/message_router'
require_relative 'mantle/workers/catch_up_cleanup_worker'
require_relative 'mantle/workers/message_handler_worker'
require_relative 'mantle/workers/process_worker'
require_relative 'mantle/version'

require_relative 'mantle/railtie' if defined?(Rails)

module Mantle
  class << self
    attr_accessor :configuration
  end

  def self.configure
    self.configuration ||= Configuration.new
    yield configuration if block_given?
  end

  def self.receive_message(channel, message)
    Mantle.logger.debug("Message received on channel: #{channel}")
    Mantle.logger.debug("Mantle message: #{message}")

    self.configuration.message_handlers.receive_message channel, message
  end

  def self.channels
    configuration.message_handlers.channels
  end

  def self.logger
    configuration.logger
  end
end