class Breakers::Client

The client contains all of the data required to operate Breakers. Creating one and setting it as the global client allows the middleware to operate without parameters

Attributes

logger[R]
plugins[R]
redis_connection[R]
services[R]

Public Class Methods

new(redis_connection:, services:, plugins: nil, logger: nil) click to toggle source

Create the Client object.

@param redis_connection [Redis] the Redis connection or namespace to use @param services [Breakers::Service] a list of services to be monitored @param plugins [Object] a list of plugins to call as events occur @param logger [Logger] a logger implementing the Ruby Logger interface to call as events occur

# File lib/breakers/client.rb, line 16
def initialize(redis_connection:, services:, plugins: nil, logger: nil)
  @redis_connection = redis_connection
  @services = Array(services)
  @plugins = Array(plugins)
  @logger = logger
end

Public Instance Methods

service_for_request(request_env:) click to toggle source

Given a request environment, return the service that should handle it.

@param request_env [Faraday::Env] the request environment @return [Breakers::Service] the service object

# File lib/breakers/client.rb, line 27
def service_for_request(request_env:)
  @services.find do |service|
    service.handles_request?(request_env: request_env)
  end
end