lib/breakers/client.rb in breakers-0.1.0 vs lib/breakers/client.rb in breakers-0.1.1
- old
+ new
@@ -1,21 +1,33 @@
module Breakers
+ # 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
class Client
attr_reader :services
attr_reader :plugins
attr_reader :redis_connection
attr_reader :logger
+ # 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
def initialize(redis_connection:, services:, plugins: nil, logger: nil)
@redis_connection = redis_connection
@services = Array(services)
@plugins = Array(plugins)
@logger = logger
end
+ # 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
def service_for_request(request_env:)
@services.find do |service|
- service.handles_request?(request_env)
+ service.handles_request?(request_env: request_env)
end
end
end
end