class Faraday::Middleware
Middleware
is the basic base class of any Faraday
middleware.
Constants
- DEFAULT_OPTIONS
- LOCK
Attributes
Public Class Methods
default_options
attr_reader that initializes class instance variable with the values of any Faraday::Middleware
defaults, and merges with subclass defaults
# File lib/faraday/middleware.rb, line 39 def default_options @default_options ||= DEFAULT_OPTIONS.merge(self::DEFAULT_OPTIONS) end
Faraday::Middleware::default_options=
allows user to set default options at the Faraday::Middleware
class level.
@example Set the Faraday::Response::RaiseError
option, ‘include_request` to `false` my_app/config/initializers/my_faraday_middleware.rb
Faraday::Response::RaiseError.default_options
= { include_request: false }
# File lib/faraday/middleware.rb, line 29 def default_options=(options = {}) validate_default_options(options) LOCK.synchronize do @default_options = default_options.merge(options) end end
# File lib/faraday/middleware.rb, line 15 def initialize(app = nil, options = {}) @app = app @options = self.class.default_options.merge(options) end
Public Instance Methods
# File lib/faraday/middleware.rb, line 54 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
# File lib/faraday/middleware.rb, line 64 def close if app.respond_to?(:close) app.close else warn "#{app} does not implement \#close!" end end