class Faraday::Middleware
Middleware is the basic base class of any Faraday middleware.
def call(env)
def call(env) on_request(env) if respond_to?(:on_request) app.call(env).on_complete do |environment| on_complete(environment) if respond_to?(:on_complete) end rescue StandardError => e on_error(e) if respond_to?(:on_error) raise end
def close
def close if app.respond_to?(:close) app.close else warn "#{app} does not implement \#close!" end end
def default_options
with the values of any Faraday::Middleware defaults, and merges with
default_options attr_reader that initializes class instance variable
def default_options @default_options ||= DEFAULT_OPTIONS.merge(self::DEFAULT_OPTIONS) end
def default_options=(options = {})
- Example: Set the Faraday::Response::RaiseError option, `include_request` to `false` -
def default_options=(options = {}) validate_default_options(options) LOCK.synchronize do @default_options = default_options.merge(options) end end
def initialize(app = nil, options = {})
def initialize(app = nil, options = {}) @app = app @options = self.class.default_options.merge(options) end
def validate_default_options(options)
def validate_default_options(options) invalid_keys = options.keys.reject { |opt| self::DEFAULT_OPTIONS.key?(opt) } return unless invalid_keys.any? raise(Faraday::InitializationError, "Invalid options provided. Keys not found in #{self}::DEFAULT_OPTIONS: #{invalid_keys.join(', ')}") end