Sha256: 6bd5d271561301f89928a7ad7975a84b375619b302ce0676f9b9631b51e733e7

Contents?: true

Size: 997 Bytes

Versions: 14

Compression:

Stored size: 997 Bytes

Contents

require 'net/http'
require 'vcr/extensions/net_http_response'

module Net
  class HTTP
    def request_with_vcr(request, body = nil, &block)
      unless VCR::HttpStubbingAdapters::FakeWeb.enabled?
        return request_without_vcr(request, body, &block)
      end

      vcr_request = VCR::Request.from_net_http_request(self, request)
      response = request_without_vcr(request, body)

      match_attributes = if cass = VCR.current_cassette
        cass.match_requests_on
      else
        VCR::RequestMatcher::DEFAULT_MATCH_ATTRIBUTES
      end

      if started? && !VCR.http_stubbing_adapter.request_stubbed?(vcr_request, match_attributes)
        VCR.record_http_interaction VCR::HTTPInteraction.new(vcr_request, VCR::Response.from_net_http_response(response))
        response.extend VCR::Net::HTTPResponse # "unwind" the response
      end

      yield response if block_given?
      response
    end

    alias request_without_vcr request
    alias request request_with_vcr
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
vcr-1.11.3 lib/vcr/extensions/net_http.rb
vcr-1.11.2 lib/vcr/extensions/net_http.rb
vcr-1.11.1 lib/vcr/extensions/net_http.rb
vcr-1.10.3 lib/vcr/extensions/net_http.rb
vcr-1.10.2 lib/vcr/extensions/net_http.rb
vcr-1.10.0 lib/vcr/extensions/net_http.rb
vcr-1.9.0 lib/vcr/extensions/net_http.rb
vcr-1.8.0 lib/vcr/extensions/net_http.rb
vcr-1.7.2 lib/vcr/extensions/net_http.rb
vcr-1.7.1 lib/vcr/extensions/net_http.rb
vcr-1.7.0 lib/vcr/extensions/net_http.rb
vcr-1.6.0 lib/vcr/extensions/net_http.rb
vcr-1.5.1 lib/vcr/extensions/net_http.rb
vcr-1.5.0 lib/vcr/extensions/net_http.rb