module VCR::LibraryHooks::Faraday::BuilderInstanceExtension

@private

Public Instance Methods

lock!(*args) click to toggle source
Calls superclass method
# File lib/vcr/library_hooks/faraday.rb, line 18
def lock!(*args)
  insert_vcr_middleware
  super
end

Private Instance Methods

insert_vcr_middleware() click to toggle source
# File lib/vcr/library_hooks/faraday.rb, line 25
def insert_vcr_middleware
  return if handlers.any? { |h| h.klass == VCR::Middleware::Faraday }
  adapter_index = handlers.index { |h| h.klass < ::Faraday::Adapter }
  adapter_index ||= handlers.size
  warn_about_after_adapter_middleware(adapter_index)
  insert_before(adapter_index, VCR::Middleware::Faraday)
end
warn_about_after_adapter_middleware(adapter_index) click to toggle source
# File lib/vcr/library_hooks/faraday.rb, line 33
def warn_about_after_adapter_middleware(adapter_index)
  after_adapter_middleware_count = (handlers.size - adapter_index - 1)
  return if after_adapter_middleware_count < 1

  after_adapter_middlewares = handlers.last(after_adapter_middleware_count)
  warn "WARNING: The Faraday connection stack contains middleware after " +
       "the HTTP adapter (#{after_adapter_middlewares.map(&:inspect).join(', ')}). " +
       "This is a non-standard configuration and VCR may not be able to " +
       "record the HTTP requests made through this Faraday connection."
end