class Faraday::Middleware

def self.dependency(lib = nil)

Executes a block which should try to require and reference dependent libraries
def self.dependency(lib = nil)
  lib ? require(lib) : yield
rescue LoadError, NameError => error
  self.load_error = error
end

def self.inherited(subclass)

def self.inherited(subclass)
  super
  subclass.send(:load_error=, self.load_error)
end

def self.loaded?

def self.loaded?
  load_error.nil?
end

def self.new(*)

def self.new(*)
  raise "missing dependency for #{self}: #{load_error.message}" unless loaded?
  super
end

def initialize(app = nil)

def initialize(app = nil)
  @app = app
end