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, & configure_broker are the 3 required methods for adapters the base adapter also has helpful base classes, but they are not necessary you can write an adapter from scratch, but these 3 class methods are required.

Defined Under Namespace

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

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.adapter_classObject



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

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:



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

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

.configure_broker(opts = {}) ⇒ Object



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

def configure_broker(opts = {})
  adapter_class.configure_broker(options.merge(opts))
end

.loggerObject



43
44
45
# File 'lib/announce.rb', line 43

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

.logger=(l) ⇒ Object



47
48
49
# File 'lib/announce.rb', line 47

def logger=(l)
  @logger = l
end

.optionsObject



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

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

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



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

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

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



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

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