Sha256: 24362faf03d9dba395af4c57b46b91d85aeb89fed78b610e5daab997f06990f8

Contents?: true

Size: 1.81 KB

Versions: 8

Compression:

Stored size: 1.81 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.without_dispatch(&block)
    current_dispatcher = Config.dispatcher.adapter
    Config.dispatcher.adapter = :null_adapter

    result = block.call

  ensure
    Config.dispatcher.adapter = current_dispatcher
    result
  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

8 entries across 8 versions & 1 rubygems

Version Path
messaging-3.6.1 lib/messaging.rb
messaging-3.6.0 lib/messaging.rb
messaging-3.5.7 lib/messaging.rb
messaging-3.5.6 lib/messaging.rb
messaging-3.5.5 lib/messaging.rb
messaging-3.5.4 lib/messaging.rb
messaging-3.5.3 lib/messaging.rb
messaging-3.5.2 lib/messaging.rb