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