Module: Watership

Defined in:
lib/watership.rb,
lib/watership/version.rb,
lib/watership/consumer.rb,
lib/watership/subscriber.rb

Defined Under Namespace

Modules: Subscriber Classes: Client, Consumer

Constant Summary collapse

CONNECTION_EXCEPTIONS =
[
  Bunny::ClientTimeout,
  Bunny::NetworkFailure,
  Bunny::PossibleAuthenticationFailureError,
  Bunny::TCPConnectionFailed
]
CLEAR_CONNECTION_EXCEPTIONS =
[
  Bunny::ConnectionError,
  Bunny::ClientTimeout,
  Timeout::Error
]
CLEAR_CHANNEL_EXCEPTIONS =
[
  Bunny::ChannelError,
  Timeout::Error
]
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.close(name) ⇒ Object



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

def self.close(name)
  if name == :all
    registered.each do |(name, client)|
      client.close
    end
  else
    registered.fetch(name).close
  end
end

.enqueue(name, opts) ⇒ Object Also known as: enqueue!



60
61
62
# File 'lib/watership.rb', line 60

def self.enqueue(name, opts)
  registered.fetch(name.to_sym).enqueue(opts)
end

.loggerObject



56
57
58
# File 'lib/watership.rb', line 56

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

.logger=(logger) ⇒ Object



52
53
54
# File 'lib/watership.rb', line 52

def self.logger=(logger)
  @logger = logger
end

.reconnect(name) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/watership.rb', line 32

def self.reconnect(name)
  if name == :all
    registered.each do |(name, client)|
      client.reconnect
    end
  else
    registered.fetch(name).reconnect
  end
end

.register(name, uri, env = 'production') ⇒ Object



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

def self.register(name, uri, env = 'production')
  registered[name.to_sym] = Client.new(uri, env)
end

.registeredObject



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

def self.registered
  @registered_instances ||= {}
end