module Breakers

Implement the main module for the gem, which includes methods for global configuration

Constants

VERSION

Public Class Methods

client() click to toggle source

Return the global client

@return [Breakers::Client] the client

# File lib/breakers.rb, line 24
def self.client
  @client
end
client=(client) click to toggle source

Set the global client for use in the middleware

@param client [Breakers::Client] the client

# File lib/breakers.rb, line 17
def self.client=(client)
  @client = client
end
disabled=(value) click to toggle source

Set a flag that can globally disable breakers

@param value [Boolean] should breakers do its thing globally

# File lib/breakers.rb, line 31
def self.disabled=(value)
  @disabled = value
end
disabled?() click to toggle source

Return the status of global disabling

@return [Boolean] is breakers disabled globally

# File lib/breakers.rb, line 38
def self.disabled?
  defined?(@disabled) && @disabled == true
end
outage_response() click to toggle source

Query for the outage response configuration

@return [Hash] configuration for the outage response, as defined in outage_response=

# File lib/breakers.rb, line 72
def self.outage_response
  @outage_response || { type: :exception }
end
outage_response=(opts) click to toggle source

Configure the middleware's handling of outages. The default is to raise a Breakers::OutageException but you can also request that the response comes back with a configurable status code.

@param [Hash] opts A hash of options @option opts [Symbol] :type Pass :exception to raise a Breakers::OutageException when an error occurs. Pass :status_code to respond. @option opts [Integer] :status_code If the type is :status_code, configure which code to return.

# File lib/breakers.rb, line 65
def self.outage_response=(opts)
  @outage_response = { type: :exception }.merge(opts)
end
redis_prefix() click to toggle source

Query for the Redis key prefix

@return [String] the prefix

# File lib/breakers.rb, line 55
def self.redis_prefix
  @redis_prefix || ''
end
redis_prefix=(prefix) click to toggle source

Breakers uses a number of Redis keys to store its data. You can pass an optional prefix here to use for the keys so that they will be namespaced properly. Note that it's also possible to create the Breakers::Client object with a Redis::Namespace object instead, in which case this is unnecessary.

@param prefix [String] the prefix

# File lib/breakers.rb, line 48
def self.redis_prefix=(prefix)
  @redis_prefix = prefix
end