faraday/lib/faraday/middleware.rb
Jim Myhrberg 32ecd07c27 enable automatic parallel manager detection
This enables the use of `#in_parallel` without manually passing in a
parallel manager instance.

If the adapter you're using has a parallel manager, it will work as
expected. If it doesn't, it'll work as normal sequential requests.
2012-01-28 22:57:21 +01:00

38 lines
757 B
Ruby

module Faraday
class Middleware
extend MiddlewareRegistry
class << self
attr_accessor :load_error
private :load_error=
end
self.load_error = 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.new(*)
raise "missing dependency for #{self}: #{load_error.message}" unless loaded?
super
end
def self.loaded?
load_error.nil?
end
def self.inherited(subclass)
super
subclass.send(:load_error=, self.load_error)
end
def initialize(app = nil)
@app = app
end
end
end