Sha256: 196126f18c7ae93fb1dc96f0c679b7ba88d364a344542a2778a297319842fa56

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require 'concurrent'
require 'dry-configurable'
require 'virtus'
require 'active_support'
require 'active_support/notifications'
require 'active_support/core_ext'

require 'messaging/config'
require 'messaging/expected_version'
require 'messaging/instrumentation'
require 'messaging/meter'
require 'messaging/exception_handler'
require 'messaging/message'
require 'messaging/message/from_json'
require 'messaging/routing'
require 'messaging/routes'
require 'messaging/adapters'
require 'messaging/middleware'
require 'messaging/publish'
require 'messaging/rails/railtie' if defined? ::Rails

module Messaging
  def self.setup(&block)
    Config.setup(&block)
  end

  def self.config
    Config.config
  end

  def self.logger
    Config.logger
  end

  def self.consumer_adapter
    Adapters[Config.consumer.adapter]
  end

  def self.dispatcher
    Adapters::Dispatcher.default
  end

  def self.message_store
    Adapters::Store.default
  end

  def self.[](adapter)
    Adapters[adapter]
  end

  def self.routes
    @routes ||= Routes.new
  end

  def self.inline!(&block)
    routes.inline!(&block)
  end

  def self.category(name)
    message_store.category(name)
  end

  def self.stream(name)
    name = name.stream_name if name.respond_to?(:stream_name)
    message_store.stream(name)
  end

  def self.messages_in_streams(*streams)
    message_store.messages_in_streams(*streams)
  end

  def self.defined_messages
    ObjectSpace.each_object(Class).select { |c| c.included_modules.include? Messaging::Message }
  end

  def self.in_consumer_mode?
    File.basename($PROGRAM_NAME) == 'messaging'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
messaging-3.5.1 lib/messaging.rb