Module: Announce

Defined in:
lib/announce/adapters/base_adapter.rb,
lib/announce.rb,
lib/announce/message.rb,
lib/announce/railtie.rb,
lib/announce/testing.rb,
lib/announce/version.rb,
lib/announce/publisher.rb,
lib/announce/subscriber.rb,
lib/announce/configuration.rb,
lib/announce/adapters/test_adapter.rb,
lib/announce/adapters/inline_adapter.rb,
lib/announce/adapters/shoryuken_adapter.rb

Overview

publish, subscribe, and configure_broker are the 3 required methods for an adapter this base adapter also has some helpful base classes, but they are not necessary you could write an adapter from scratch so long as the class has these 3 class methods.

Defined Under Namespace

Modules: Adapters, Publisher, Subscriber, Testing Classes: Configuration, Message, Railtie

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.adapter_classObject



37
38
39
40
41
# File 'lib/announce.rb', line 37

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

.configure(opts = {}) {|@options| ... } ⇒ Object

Yields:



32
33
34
35
# File 'lib/announce.rb', line 32

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

.configure_brokerObject



24
25
26
# File 'lib/announce.rb', line 24

def configure_broker
  adapter_class.configure_broker(options)
end

.loggerObject



43
44
45
46
47
48
49
# File 'lib/announce.rb', line 43

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

.logger=(l) ⇒ Object



51
52
53
# File 'lib/announce.rb', line 51

def logger=(l)
  @logger = l
end

.optionsObject



28
29
30
# File 'lib/announce.rb', line 28

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

.publish(subject, action, message, options = {}) ⇒ Object Also known as: announce



14
15
16
# File 'lib/announce.rb', line 14

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

.subscribe(worker_class, subject, actions = [], options = {}) ⇒ Object



20
21
22
# File 'lib/announce.rb', line 20

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