Sha256: af237f79e1feca0f879f15d93a3a79931dd635892e5b2b2bdc1dd709fb4833c4

Contents?: true

Size: 738 Bytes

Versions: 4

Compression:

Stored size: 738 Bytes

Contents

require 'vcr/middleware/faraday'

module VCR
  class LibraryHooks
    # @private
    module Faraday
      # @private
      module BuilderClassExtension
        def new(*args)
          super.extend BuilderInstanceExtension
        end

        ::Faraday::Builder.extend self
      end

      # @private
      module BuilderInstanceExtension
        def lock!(*args)
          insert_vcr_middleware
          super
        end

      private

        def insert_vcr_middleware
          return if handlers.any? { |h| h.klass == VCR::Middleware::Faraday }
          adapter_index = handlers.index { |h| h.klass < ::Faraday::Adapter }
          insert_before(adapter_index, VCR::Middleware::Faraday)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vcr-2.1.1 lib/vcr/library_hooks/faraday.rb
vcr-2.1.0 lib/vcr/library_hooks/faraday.rb
vcr-2.0.1 lib/vcr/library_hooks/faraday.rb
vcr-2.0.0 lib/vcr/library_hooks/faraday.rb