Class: Announce::Adapters::BaseAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/announce/adapters/base_adapter.rb

Direct Known Subclasses

InlineAdapter, ShoryukenAdapter, TestAdapter

Defined Under Namespace

Classes: BrokerManager, Destination, Queue, Subscriber, Topic

Class Method Summary collapse

Class Method Details

.adapter_constantize(name) ⇒ Object



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

def adapter_constantize(name)
  a_klass = Announce.options[:adapter].to_s.camelize
  klass = name.to_s.camelize
  "::Announce::Adapters::#{a_klass}Adapter::#{klass}".constantize
end

.configure_broker(options) ⇒ Object

required



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

def configure_broker(options)
  broker_manager = adapter_constantize(:broker_manager).new(options)
  broker_manager.configure
end

.publish(subject, action, body, options = {}) ⇒ Object

required



12
13
14
15
16
17
# File 'lib/announce/adapters/base_adapter.rb', line 12

def publish(subject, action, body, options = {})
  topic = adapter_constantize(:topic).new(subject, action, options)
  msg =
    Announce::Message.new(subject: subject, action: action, body: body)
  topic.publish(msg.to_message, options)
end

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

required



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

def subscribe(worker_class, subject, actions = [], options = {})
  subscriber = adapter_constantize(:subscriber).new
  subscriber.subscribe(worker_class, subject, actions, options)
end