Sha256: 3d9129dbfe58d6446149a18163fa6f342b492580f959e6f0b76004afc23ec5cd

Contents?: true

Size: 1.26 KB

Versions: 4

Compression:

Stored size: 1.26 KB

Contents

require 'logger'

require 'announce/configuration'
require 'announce/core_ext'
require 'announce/message'
require 'announce/publisher'
require 'announce/subscriber'
require 'announce/version'
require 'announce/railtie' if defined?(Rails)

module Announce
  class << self

    def publish(subject, action, message, options={})
      adapter_class.publish(subject, action, message, options)
    end

    alias announce publish

    def subscribe(worker_class, subject, actions = [], options = {})
      adapter_class.subscribe(worker_class, subject, actions, options)
    end

    def configure_broker
      adapter_class.configure_broker(options)
    end

    def options
      @options ||= Announce::Configuration.default_options
    end

    def configure(opts = {})
      Announce::Configuration.configure(opts)
      yield @options if block_given?
    end

    def adapter_class
      announce_adapter = Announce.options[:adapter]
      require "announce/adapters/#{announce_adapter.to_s.downcase}_adapter"
      "::Announce::Adapters::#{announce_adapter.to_s.camelize}Adapter".constantize
    end

    def logger
      @logger ||= if defined?(Rails)
        Rails.logger
      else
        Logger.new(STDOUT)
      end
    end

    def logger=(l)
      @logger = l
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
announce-0.2.3 lib/announce.rb
announce-0.2.2 lib/announce.rb
announce-0.2.1 lib/announce.rb
announce-0.2.0 lib/announce.rb