To add a collaborator to this project you will need to use the Relish gem to add the collaborator via a terminal command. Soon you'll be able to also add collaborators here!
More about adding a collaboratorquery_parser
By default, VCR will parse query strings using CGI.parse
from the Ruby
standard library. This may not be the most optimal or performant library
available. You can set the query_parser
configuration option to use a
different parser (such as Rack::Utils.method(:parse_query)
) to decode,
normalize, and/or provide a comparison object for query strings.
The configured query parser needs to expose a .call
method that returns an
object which is comparable. This instance needs to implement the following
API:
#==
=> boolean
- Background
-
- Given
-
a file named "cassettes/example.yml" with:
--- http_interactions: - request: method: get uri: http://url.example.com/?bravo=2&alpha=1 body: encoding: UTF-8 string: "" headers: {} response: status: code: 200 message: OK headers: Content-Length: - "5" body: encoding: UTF-8 string: Hello http_version: "1.1" recorded_at: Tue, 25 Sep 2012 04:58:44 GMT recorded_with: VCR 2.2.5
- Scenarios
-
- the VCR query parser gets its value from `query_parser`
-
- Given
-
a file named "query_parser.rb" with:
require 'vcr' require 'rack' VCR.configure do |c| c.query_parser = lambda { |query| raise query.inspect } c.default_cassette_options = {:match_requests_on => [:query]} c.hook_into :webmock c.cassette_library_dir = 'cassettes' end uri = URI.parse('http://other-url.example.com/?bravo=2&alpha=1') VCR.use_cassette('example') do puts Net::HTTP.get_response(uri).body end
- When
-
I run
ruby query_parser.rb
- Then
-
it should fail with an error like:
"alpha=1&bravo=2"
- the `query_parser` defaults to the standard library's `CGI.parse`
-
- Given
-
a file named "query_parser_default.rb" with:
require 'vcr' VCR.configure do |c| c.hook_into :webmock c.default_cassette_options = {:match_requests_on => [:query]} c.cassette_library_dir = 'cassettes' end uri = URI.parse('http://other-url.example.com/?bravo=2&alpha=1') VCR.use_cassette('example') do puts Net::HTTP.get_response(uri).body end
- When
-
I run
ruby query_parser_default.rb
- Then
- it should pass with "Hello"
Last published 11 months ago by olleolleolle.