Module: VCR::LibraryHooks::WebMock::Helpers
- Included in:
- VCR::LibraryHooks::WebMock, RequestHandler
- Defined in:
- lib/vcr/library_hooks/webmock.rb
Instance Method Summary collapse
- #request_headers_for(webmock_request) ⇒ Object
- #typed_request_for(webmock_request, remove = false) ⇒ Object
- #vcr_request_for(webmock_request) ⇒ Object
- #vcr_response_for(webmock_response) ⇒ Object
Instance Method Details
#request_headers_for(webmock_request) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/vcr/library_hooks/webmock.rb', line 55 def request_headers_for(webmock_request) return nil unless webmock_request.headers # WebMock hooks deeply into a Excon at a place where it manually adds a "Host" # header, but this isn't a header we actually care to store... webmock_request.headers.dup.tap do |headers| headers.delete("Host") end end |
#typed_request_for(webmock_request, remove = false) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/vcr/library_hooks/webmock.rb', line 71 def typed_request_for(webmock_request, remove = false) if webmock_request.instance_variables.find { |v| v.to_sym == :@__typed_vcr_request } meth = remove ? :remove_instance_variable : :instance_variable_get return webmock_request.send(meth, :@__typed_vcr_request) end warn <<-EOS.gsub(/^\s+\|/, '') |WARNING: There appears to be a bug in WebMock's after_request hook | and VCR is attempting to work around it. Some VCR features | may not work properly. EOS Request::Typed.new(vcr_request_for(webmock_request), :unknown) end |
#vcr_request_for(webmock_request) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/vcr/library_hooks/webmock.rb', line 36 def vcr_request_for(webmock_request) VCR::Request.new \ webmock_request.method, webmock_request.uri.to_s, webmock_request.body, request_headers_for(webmock_request) end |
#vcr_response_for(webmock_response) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/vcr/library_hooks/webmock.rb', line 45 def vcr_response_for(webmock_response) VCR::Response.new \ VCR::ResponseStatus.new(*webmock_response.status), webmock_response.headers, webmock_response.body, nil end |