module ExceptionalSynchrony::FaradayAdapterPatch_v1

Patch built relative to faraday v1.3.0 although the ruby2_keywords prefix was dropped from the adapter method definition to simplify this code

Public Instance Methods

adapter(klass = Faraday::RackBuilder::NO_ARGUMENT, *args, &block) click to toggle source
# File lib/exceptional_synchrony/faraday_monkey_patch.rb, line 28
def adapter(klass = Faraday::RackBuilder::NO_ARGUMENT, *args, &block)
  return @adapter if klass == Faraday::RackBuilder::NO_ARGUMENT

  klass = Faraday::Adapter.lookup_middleware(klass) if klass.is_a?(Symbol)

  # BEGIN PATCH
  if klass == Faraday::Adapter::NetHttp && Thread.current.thread_variable_get(:em_synchrony_reactor_thread)
    klass = Faraday::Adapter::EMSynchrony
  end
  # END PATCH

  @adapter = Faraday::RackBuilder::Handler.new(klass, *args, &block)
end