Class: Waffle::Transports::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/waffle/transports/base.rb

Direct Known Subclasses

Rabbitmq, Redis

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Base

Returns a new instance of Base.



5
6
7
8
# File 'lib/waffle/transports/base.rb', line 5

def initialize config
  @config = config
  connect!
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



4
5
6
# File 'lib/waffle/transports/base.rb', line 4

def config
  @config
end

Instance Method Details

#publish(flow = 'events', message = '') ⇒ Object



10
11
12
13
14
# File 'lib/waffle/transports/base.rb', line 10

def publish flow = 'events', message = ''
  publish_impl(flow, message)
rescue *connection_exceptions => e
  reconnect && retry if ready_to_connect?
end

#subscribe(flow = '', &block) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/waffle/transports/base.rb', line 16

def subscribe flow = '', &block
  subscribe_impl(flow, &block)
rescue *connection_exceptions => e
  until reconnect do
    sleep(config.connection_attempt_timeout)
  end
  retry
end