vcr 3.0.3 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/vcr.rb +18 -1
- data/lib/vcr/cassette.rb +11 -3
- data/lib/vcr/cassette/persisters/file_system.rb +1 -1
- data/lib/vcr/configuration.rb +3 -5
- data/lib/vcr/deprecations.rb +0 -62
- data/lib/vcr/errors.rb +16 -0
- data/lib/vcr/library_hooks/typhoeus.rb +37 -8
- data/lib/vcr/middleware/faraday.rb +5 -1
- data/lib/vcr/structs.rb +1 -1
- data/lib/vcr/util/hooks.rb +1 -0
- data/lib/vcr/version.rb +1 -1
- metadata +9 -249
- data/features/CHANGELOG.md +0 -710
- data/features/CONTRIBUTING.md +0 -26
- data/features/LICENSE.md +0 -20
- data/features/README.md +0 -339
- data/features/Upgrade.md +0 -289
- data/features/about_these_examples.md +0 -18
- data/features/cassettes/allow_unused_http_interactions.feature +0 -100
- data/features/cassettes/automatic_re_recording.feature +0 -72
- data/features/cassettes/decompress.feature +0 -74
- data/features/cassettes/dynamic_erb.feature +0 -100
- data/features/cassettes/exclusive.feature +0 -126
- data/features/cassettes/format.feature +0 -411
- data/features/cassettes/freezing_time.feature +0 -68
- data/features/cassettes/naming.feature +0 -28
- data/features/cassettes/no_cassette.feature +0 -152
- data/features/cassettes/update_content_length_header.feature +0 -112
- data/features/configuration/allow_http_connections_when_no_cassette.feature +0 -55
- data/features/configuration/cassette_library_dir.feature +0 -31
- data/features/configuration/debug_logging.feature +0 -58
- data/features/configuration/default_cassette_options.feature +0 -100
- data/features/configuration/filter_sensitive_data.feature +0 -153
- data/features/configuration/hook_into.feature +0 -172
- data/features/configuration/ignore_request.feature +0 -192
- data/features/configuration/preserve_exact_body_bytes.feature +0 -108
- data/features/configuration/query_parser.feature +0 -84
- data/features/configuration/uri_parser.feature +0 -93
- data/features/getting_started.md +0 -82
- data/features/hooks/after_http_request.feature +0 -58
- data/features/hooks/around_http_request.feature +0 -57
- data/features/hooks/before_http_request.feature +0 -63
- data/features/hooks/before_playback.feature +0 -184
- data/features/hooks/before_record.feature +0 -172
- data/features/http_libraries/em_http_request.feature +0 -250
- data/features/http_libraries/net_http.feature +0 -179
- data/features/middleware/faraday.feature +0 -56
- data/features/middleware/rack.feature +0 -92
- data/features/record_modes/all.feature +0 -82
- data/features/record_modes/new_episodes.feature +0 -79
- data/features/record_modes/none.feature +0 -72
- data/features/record_modes/once.feature +0 -95
- data/features/request_matching/README.md +0 -30
- data/features/request_matching/body.feature +0 -91
- data/features/request_matching/body_as_json.feature +0 -90
- data/features/request_matching/custom_matcher.feature +0 -135
- data/features/request_matching/headers.feature +0 -85
- data/features/request_matching/host.feature +0 -95
- data/features/request_matching/identical_request_sequence.feature +0 -89
- data/features/request_matching/method.feature +0 -96
- data/features/request_matching/path.feature +0 -96
- data/features/request_matching/playback_repeats.feature +0 -98
- data/features/request_matching/query.feature +0 -97
- data/features/request_matching/uri.feature +0 -94
- data/features/request_matching/uri_without_param.feature +0 -101
- data/features/step_definitions/cli_steps.rb +0 -199
- data/features/support/env.rb +0 -46
- data/features/support/http_lib_filters.rb +0 -46
- data/features/test_frameworks/cucumber.feature +0 -211
- data/features/test_frameworks/rspec_macro.feature +0 -81
- data/features/test_frameworks/rspec_metadata.feature +0 -150
- data/features/test_frameworks/test_unit.feature +0 -49
- data/lib/vcr/extensions/net_http_response.rb +0 -36
- data/lib/vcr/library_hooks/fakeweb.rb +0 -197
- data/spec/acceptance/concurrency_spec.rb +0 -51
- data/spec/acceptance/threading_spec.rb +0 -34
- data/spec/fixtures/cassette_spec/1_x_cassette.yml +0 -110
- data/spec/fixtures/cassette_spec/empty.yml +0 -0
- data/spec/fixtures/cassette_spec/example.yml +0 -111
- data/spec/fixtures/cassette_spec/with_localhost_requests.yml +0 -111
- data/spec/fixtures/fake_example_responses.yml +0 -110
- data/spec/fixtures/match_requests_on.yml +0 -187
- data/spec/lib/vcr/cassette/erb_renderer_spec.rb +0 -53
- data/spec/lib/vcr/cassette/http_interaction_list_spec.rb +0 -295
- data/spec/lib/vcr/cassette/migrator_spec.rb +0 -196
- data/spec/lib/vcr/cassette/persisters/file_system_spec.rb +0 -75
- data/spec/lib/vcr/cassette/persisters_spec.rb +0 -39
- data/spec/lib/vcr/cassette/serializers_spec.rb +0 -182
- data/spec/lib/vcr/cassette_spec.rb +0 -618
- data/spec/lib/vcr/configuration_spec.rb +0 -326
- data/spec/lib/vcr/deprecations_spec.rb +0 -85
- data/spec/lib/vcr/errors_spec.rb +0 -178
- data/spec/lib/vcr/extensions/net_http_response_spec.rb +0 -86
- data/spec/lib/vcr/library_hooks/excon_spec.rb +0 -104
- data/spec/lib/vcr/library_hooks/fakeweb_spec.rb +0 -169
- data/spec/lib/vcr/library_hooks/faraday_spec.rb +0 -68
- data/spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb +0 -36
- data/spec/lib/vcr/library_hooks/typhoeus_spec.rb +0 -162
- data/spec/lib/vcr/library_hooks/webmock_spec.rb +0 -117
- data/spec/lib/vcr/library_hooks_spec.rb +0 -51
- data/spec/lib/vcr/middleware/faraday_spec.rb +0 -181
- data/spec/lib/vcr/middleware/rack_spec.rb +0 -115
- data/spec/lib/vcr/request_ignorer_spec.rb +0 -70
- data/spec/lib/vcr/request_matcher_registry_spec.rb +0 -345
- data/spec/lib/vcr/structs_spec.rb +0 -732
- data/spec/lib/vcr/test_frameworks/cucumber_spec.rb +0 -107
- data/spec/lib/vcr/test_frameworks/rspec_spec.rb +0 -94
- data/spec/lib/vcr/util/hooks_spec.rb +0 -158
- data/spec/lib/vcr/util/internet_connection_spec.rb +0 -37
- data/spec/lib/vcr/util/version_checker_spec.rb +0 -31
- data/spec/lib/vcr/version_spec.rb +0 -27
- data/spec/lib/vcr_spec.rb +0 -354
- data/spec/monkey_patches.rb +0 -186
- data/spec/spec_helper.rb +0 -63
- data/spec/support/configuration_stubbing.rb +0 -8
- data/spec/support/cucumber_helpers.rb +0 -39
- data/spec/support/fixnum_extension.rb +0 -10
- data/spec/support/http_library_adapters.rb +0 -289
- data/spec/support/limited_uri.rb +0 -21
- data/spec/support/ruby_interpreter.rb +0 -7
- data/spec/support/shared_example_groups/excon.rb +0 -63
- data/spec/support/shared_example_groups/hook_into_http_library.rb +0 -594
- data/spec/support/shared_example_groups/request_hooks.rb +0 -59
- data/spec/support/sinatra_app.rb +0 -86
- data/spec/support/vcr_localhost_server.rb +0 -76
- data/spec/support/vcr_stub_helpers.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 806e6d86ccbe7132de58cc1313e0aef6ab0c2d8d
|
4
|
+
data.tar.gz: e86dd3056697f943fe96721fd2e58163fa900c1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7549fff407299870a1d989c3627a371b1a77d5054ba42b9a3ee52abd1e579acccbe282a1e7077f3f7bf14eceef2ed6a04d8a7a7578895061d6f858436c07be01
|
7
|
+
data.tar.gz: 427619bde2eb934e06da74ba0888544efc574f437387cd6e00b7e8e3736f760bb5461626e697e4d9725c3d53103d22d9c589f1d809c3aa062550ab9c6fe3d746
|
data/lib/vcr.rb
CHANGED
@@ -34,7 +34,6 @@ module VCR
|
|
34
34
|
|
35
35
|
module RSpec
|
36
36
|
autoload :Metadata, 'vcr/test_frameworks/rspec'
|
37
|
-
autoload :Macros, 'vcr/deprecations'
|
38
37
|
end
|
39
38
|
|
40
39
|
module Middleware
|
@@ -192,6 +191,24 @@ module VCR
|
|
192
191
|
end
|
193
192
|
end
|
194
193
|
|
194
|
+
# Inserts multiple cassettes the given names
|
195
|
+
#
|
196
|
+
# @example
|
197
|
+
# cassettes = [
|
198
|
+
# { name: 'github' },
|
199
|
+
# { name: 'apple', options: { erb: true } }
|
200
|
+
# ]
|
201
|
+
# VCR.use_cassettes() do
|
202
|
+
# # make multiple HTTP requests
|
203
|
+
# end
|
204
|
+
def use_cassettes(cassettes, &block)
|
205
|
+
return use_cassette(cassettes.last[:name]) { block.call } if cassettes.length == 1
|
206
|
+
cassette = cassettes.pop
|
207
|
+
use_cassette(cassette[:name], cassette[:options]) do
|
208
|
+
use_cassettes(cassettes, &block)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
195
212
|
# Used to configure VCR.
|
196
213
|
#
|
197
214
|
# @example
|
data/lib/vcr/cassette.rb
CHANGED
@@ -36,6 +36,9 @@ module VCR
|
|
36
36
|
# @return [Integer, nil] How frequently (in seconds) the cassette should be re-recorded.
|
37
37
|
attr_reader :re_record_interval
|
38
38
|
|
39
|
+
# @return [Boolean, nil] Should outdated interactions be recorded back to file
|
40
|
+
attr_reader :clean_outdated_http_interactions
|
41
|
+
|
39
42
|
# @return [Array<Symbol>] If set, {VCR::Configuration#before_record} and
|
40
43
|
# {VCR::Configuration#before_playback} hooks with a corresponding tag will apply.
|
41
44
|
attr_reader :tags
|
@@ -146,7 +149,7 @@ module VCR
|
|
146
149
|
:record, :erb, :match_requests_on, :re_record_interval, :tag, :tags,
|
147
150
|
:update_content_length_header, :allow_playback_repeats, :allow_unused_http_interactions,
|
148
151
|
:exclusive, :serialize_with, :preserve_exact_body_bytes, :decode_compressed_response,
|
149
|
-
:persist_with
|
152
|
+
:persist_with, :clean_outdated_http_interactions
|
150
153
|
]
|
151
154
|
|
152
155
|
if invalid_options.size > 0
|
@@ -155,7 +158,7 @@ module VCR
|
|
155
158
|
end
|
156
159
|
|
157
160
|
def extract_options
|
158
|
-
[:erb, :match_requests_on, :re_record_interval,
|
161
|
+
[:erb, :match_requests_on, :re_record_interval, :clean_outdated_http_interactions,
|
159
162
|
:allow_playback_repeats, :allow_unused_http_interactions, :exclusive].each do |name|
|
160
163
|
instance_variable_set("@#{name}", @options[name])
|
161
164
|
end
|
@@ -247,7 +250,12 @@ module VCR
|
|
247
250
|
end
|
248
251
|
end
|
249
252
|
|
250
|
-
old_interactions + new_recorded_interactions
|
253
|
+
up_to_date_interactions(old_interactions) + new_recorded_interactions
|
254
|
+
end
|
255
|
+
|
256
|
+
def up_to_date_interactions(interactions)
|
257
|
+
return interactions unless clean_outdated_http_interactions && re_record_interval
|
258
|
+
interactions.take_while { |x| x[:recorded_at] > Time.now - re_record_interval }
|
251
259
|
end
|
252
260
|
|
253
261
|
def interactions_to_record
|
data/lib/vcr/configuration.rb
CHANGED
@@ -54,16 +54,14 @@ module VCR
|
|
54
54
|
#
|
55
55
|
# @example
|
56
56
|
# VCR.configure do |c|
|
57
|
-
# c.hook_into :
|
57
|
+
# c.hook_into :webmock, :typhoeus
|
58
58
|
# end
|
59
59
|
#
|
60
60
|
# @param hooks [Array<Symbol>] List of libraries. Valid values are
|
61
|
-
# `:
|
61
|
+
# `:webmock`, `:typhoeus`, `:excon` and `:faraday`.
|
62
62
|
# @raise [ArgumentError] when given an unsupported library name.
|
63
63
|
# @raise [VCR::Errors::LibraryVersionTooLowError] when the version
|
64
64
|
# of a library you are using is too low for VCR to support.
|
65
|
-
# @note `:fakeweb` and `:webmock` cannot both be used since they both monkey patch
|
66
|
-
# `Net::HTTP`. Otherwise, you can use any combination of these.
|
67
65
|
def hook_into(*hooks)
|
68
66
|
hooks.each { |a| load_library_hook(a) }
|
69
67
|
invoke_hook(:after_library_hooks_loaded)
|
@@ -502,7 +500,7 @@ module VCR
|
|
502
500
|
file = "vcr/library_hooks/#{hook}"
|
503
501
|
require file
|
504
502
|
rescue LoadError => e
|
505
|
-
raise e unless e.message.include?(file) # in case
|
503
|
+
raise e unless e.message.include?(file) # in case WebMock itself is not available
|
506
504
|
raise ArgumentError.new("#{hook.inspect} is not a supported VCR HTTP library hook.")
|
507
505
|
end
|
508
506
|
|
data/lib/vcr/deprecations.rb
CHANGED
@@ -43,67 +43,5 @@ module VCR
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
47
|
-
module RSpec
|
48
|
-
# Contains macro methods to assist with VCR usage. These methods are
|
49
|
-
# intended to be used directly in an RSpec example group. To make these
|
50
|
-
# available in your RSpec example groups, extend the module in an individual
|
51
|
-
# example group, or configure RSpec to extend the module in all example groups.
|
52
|
-
#
|
53
|
-
# @example
|
54
|
-
# RSpec.configure do |c|
|
55
|
-
# c.extend VCR::RSpec::Macros
|
56
|
-
# end
|
57
|
-
#
|
58
|
-
module Macros
|
59
|
-
def self.extended(base)
|
60
|
-
Kernel.warn "WARNING: VCR::RSpec::Macros is deprecated. Use RSpec metadata options instead `:vcr => vcr_options`"
|
61
|
-
end
|
62
|
-
|
63
|
-
# Sets up a `before` and `after` hook that will insert and eject a
|
64
|
-
# cassette, respectively.
|
65
|
-
#
|
66
|
-
# @example
|
67
|
-
# describe "Some API Client" do
|
68
|
-
# use_vcr_cassette "some_api", :record => :new_episodes
|
69
|
-
# end
|
70
|
-
#
|
71
|
-
# @param [(optional) String] name the cassette name; it will be inferred by the example
|
72
|
-
# group descriptions if not given.
|
73
|
-
# @param [(optional) Hash] options the cassette options
|
74
|
-
# @deprecated Use RSpec metadata options
|
75
|
-
def use_vcr_cassette(*args)
|
76
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
77
|
-
name = args.first || infer_cassette_name
|
78
|
-
|
79
|
-
before(:each) do
|
80
|
-
VCR.insert_cassette(name, options)
|
81
|
-
end
|
82
|
-
|
83
|
-
after(:each) do
|
84
|
-
VCR.eject_cassette
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
private
|
89
|
-
|
90
|
-
def infer_cassette_name
|
91
|
-
# RSpec 1 exposes #description_parts; use that if its available
|
92
|
-
return description_parts.join("/") if respond_to?(:description_parts)
|
93
|
-
|
94
|
-
# Otherwise use RSpec 2/3 metadata...
|
95
|
-
group_descriptions = []
|
96
|
-
klass = self
|
97
|
-
|
98
|
-
while klass.respond_to?(:metadata) && klass.metadata
|
99
|
-
group_descriptions << klass.metadata[:description] ||
|
100
|
-
klass.metadata[:example_group][:description]
|
101
|
-
klass = klass.superclass
|
102
|
-
end
|
103
|
-
|
104
|
-
group_descriptions.compact.reverse.join('/')
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
46
|
end
|
109
47
|
|
data/lib/vcr/errors.rb
CHANGED
@@ -107,6 +107,10 @@ module VCR
|
|
107
107
|
|
108
108
|
lines << " #{request.method.to_s.upcase} #{request.uri}"
|
109
109
|
|
110
|
+
if match_request_on_headers?
|
111
|
+
lines << " Headers:\n#{formatted_headers}"
|
112
|
+
end
|
113
|
+
|
110
114
|
if match_request_on_body?
|
111
115
|
lines << " Body: #{request.body}"
|
112
116
|
end
|
@@ -114,6 +118,10 @@ module VCR
|
|
114
118
|
lines.join("\n")
|
115
119
|
end
|
116
120
|
|
121
|
+
def match_request_on_headers?
|
122
|
+
current_matchers.include?(:headers)
|
123
|
+
end
|
124
|
+
|
117
125
|
def match_request_on_body?
|
118
126
|
current_matchers.include?(:body)
|
119
127
|
end
|
@@ -128,6 +136,14 @@ module VCR
|
|
128
136
|
end
|
129
137
|
end
|
130
138
|
|
139
|
+
def formatted_headers
|
140
|
+
request.headers.flat_map do |header, values|
|
141
|
+
values.map do |val|
|
142
|
+
" #{header}: #{val.inspect}"
|
143
|
+
end
|
144
|
+
end.join("\n")
|
145
|
+
end
|
146
|
+
|
131
147
|
def cassettes_description
|
132
148
|
if current_cassettes.size > 0
|
133
149
|
[cassettes_list << "\n",
|
@@ -44,7 +44,7 @@ else
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def on_stubbed_by_vcr_request
|
47
|
-
::Typhoeus::Response.new \
|
47
|
+
response = ::Typhoeus::Response.new \
|
48
48
|
:http_version => stubbed_response.http_version,
|
49
49
|
:code => stubbed_response.status.code,
|
50
50
|
:status_message => stubbed_response.status.message,
|
@@ -52,6 +52,13 @@ else
|
|
52
52
|
:body => stubbed_response.body,
|
53
53
|
:effective_url => stubbed_response.adapter_metadata.fetch('effective_url', request.url),
|
54
54
|
:mock => true
|
55
|
+
|
56
|
+
first_header_line = "HTTP/#{stubbed_response.http_version} #{response.code} #{response.status_message}\r\n"
|
57
|
+
response.instance_variable_set(:@first_header_line, first_header_line)
|
58
|
+
response.instance_variable_get(:@options)[:response_headers] =
|
59
|
+
first_header_line + response.headers.map { |k,v| "#{k}: #{v}"}.join("\r\n")
|
60
|
+
|
61
|
+
response
|
55
62
|
end
|
56
63
|
|
57
64
|
def stubbed_response_headers
|
@@ -74,17 +81,36 @@ else
|
|
74
81
|
end
|
75
82
|
|
76
83
|
# @private
|
77
|
-
|
78
|
-
|
79
|
-
VCR::
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
+
class << self
|
85
|
+
def vcr_response_from(response)
|
86
|
+
VCR::Response.new \
|
87
|
+
VCR::ResponseStatus.new(response.code, response.status_message),
|
88
|
+
response.headers,
|
89
|
+
response.body,
|
90
|
+
response.http_version,
|
91
|
+
{ "effective_url" => response.effective_url }
|
92
|
+
end
|
93
|
+
|
94
|
+
def collect_chunks(request)
|
95
|
+
chunks = ''
|
96
|
+
request.on_body.unshift(
|
97
|
+
Proc.new do |body, response|
|
98
|
+
chunks += body
|
99
|
+
request.instance_variable_set(:@chunked_body, chunks)
|
100
|
+
end
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
def restore_body_from_chunks(response, request)
|
105
|
+
response.options[:response_body] = request.instance_variable_get(:@chunked_body)
|
106
|
+
end
|
84
107
|
end
|
85
108
|
|
86
109
|
::Typhoeus.on_complete do |response|
|
87
110
|
request = response.request
|
111
|
+
|
112
|
+
restore_body_from_chunks(response, request) if request.streaming?
|
113
|
+
|
88
114
|
unless VCR.library_hooks.disabled?(:typhoeus)
|
89
115
|
vcr_response = vcr_response_from(response)
|
90
116
|
typed_vcr_request = request.send(:remove_instance_variable, :@__typed_vcr_request)
|
@@ -99,7 +125,10 @@ else
|
|
99
125
|
end
|
100
126
|
|
101
127
|
::Typhoeus.before do |request|
|
128
|
+
collect_chunks(request) if request.streaming?
|
102
129
|
if response = VCR::LibraryHooks::Typhoeus::RequestHandler.new(request).handle
|
130
|
+
request.on_headers.each { |cb| cb.call(response) }
|
131
|
+
request.on_body.each { |cb| cb.call(response.body, response) }
|
103
132
|
request.finish(response)
|
104
133
|
else
|
105
134
|
true
|
@@ -72,8 +72,12 @@ module VCR
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def response_for(response)
|
75
|
+
# reason_phrase is a new addition to Faraday::Response,
|
76
|
+
# so maintain backward compatibility
|
77
|
+
reason = response.respond_to?(:reason_phrase) ? response.reason_phrase : nil
|
78
|
+
|
75
79
|
VCR::Response.new(
|
76
|
-
VCR::ResponseStatus.new(response.status,
|
80
|
+
VCR::ResponseStatus.new(response.status, reason),
|
77
81
|
response.headers,
|
78
82
|
raw_body_from(response.body),
|
79
83
|
nil
|
data/lib/vcr/structs.rb
CHANGED
@@ -274,7 +274,7 @@ module VCR
|
|
274
274
|
end
|
275
275
|
|
276
276
|
# @return [Boolean] whether or not this request is being stubbed by an
|
277
|
-
# external library (such as WebMock
|
277
|
+
# external library (such as WebMock).
|
278
278
|
# @see #stubbed_by_vcr?
|
279
279
|
# @see #stubbed?
|
280
280
|
def externally_stubbed?
|
data/lib/vcr/util/hooks.rb
CHANGED
data/lib/vcr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Myron Marston
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: fakeweb
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: webmock
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,16 +182,16 @@ dependencies:
|
|
196
182
|
name: faraday
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
198
184
|
requirements:
|
199
|
-
- - "
|
185
|
+
- - "~>"
|
200
186
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
187
|
+
version: 0.11.0
|
202
188
|
type: :development
|
203
189
|
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
|
-
- - "
|
192
|
+
- - "~>"
|
207
193
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
194
|
+
version: 0.11.0
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: httpclient
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,66 +312,6 @@ executables: []
|
|
326
312
|
extensions: []
|
327
313
|
extra_rdoc_files: []
|
328
314
|
files:
|
329
|
-
- features/CHANGELOG.md
|
330
|
-
- features/CONTRIBUTING.md
|
331
|
-
- features/LICENSE.md
|
332
|
-
- features/README.md
|
333
|
-
- features/Upgrade.md
|
334
|
-
- features/about_these_examples.md
|
335
|
-
- features/cassettes/allow_unused_http_interactions.feature
|
336
|
-
- features/cassettes/automatic_re_recording.feature
|
337
|
-
- features/cassettes/decompress.feature
|
338
|
-
- features/cassettes/dynamic_erb.feature
|
339
|
-
- features/cassettes/exclusive.feature
|
340
|
-
- features/cassettes/format.feature
|
341
|
-
- features/cassettes/freezing_time.feature
|
342
|
-
- features/cassettes/naming.feature
|
343
|
-
- features/cassettes/no_cassette.feature
|
344
|
-
- features/cassettes/update_content_length_header.feature
|
345
|
-
- features/configuration/allow_http_connections_when_no_cassette.feature
|
346
|
-
- features/configuration/cassette_library_dir.feature
|
347
|
-
- features/configuration/debug_logging.feature
|
348
|
-
- features/configuration/default_cassette_options.feature
|
349
|
-
- features/configuration/filter_sensitive_data.feature
|
350
|
-
- features/configuration/hook_into.feature
|
351
|
-
- features/configuration/ignore_request.feature
|
352
|
-
- features/configuration/preserve_exact_body_bytes.feature
|
353
|
-
- features/configuration/query_parser.feature
|
354
|
-
- features/configuration/uri_parser.feature
|
355
|
-
- features/getting_started.md
|
356
|
-
- features/hooks/after_http_request.feature
|
357
|
-
- features/hooks/around_http_request.feature
|
358
|
-
- features/hooks/before_http_request.feature
|
359
|
-
- features/hooks/before_playback.feature
|
360
|
-
- features/hooks/before_record.feature
|
361
|
-
- features/http_libraries/em_http_request.feature
|
362
|
-
- features/http_libraries/net_http.feature
|
363
|
-
- features/middleware/faraday.feature
|
364
|
-
- features/middleware/rack.feature
|
365
|
-
- features/record_modes/all.feature
|
366
|
-
- features/record_modes/new_episodes.feature
|
367
|
-
- features/record_modes/none.feature
|
368
|
-
- features/record_modes/once.feature
|
369
|
-
- features/request_matching/README.md
|
370
|
-
- features/request_matching/body.feature
|
371
|
-
- features/request_matching/body_as_json.feature
|
372
|
-
- features/request_matching/custom_matcher.feature
|
373
|
-
- features/request_matching/headers.feature
|
374
|
-
- features/request_matching/host.feature
|
375
|
-
- features/request_matching/identical_request_sequence.feature
|
376
|
-
- features/request_matching/method.feature
|
377
|
-
- features/request_matching/path.feature
|
378
|
-
- features/request_matching/playback_repeats.feature
|
379
|
-
- features/request_matching/query.feature
|
380
|
-
- features/request_matching/uri.feature
|
381
|
-
- features/request_matching/uri_without_param.feature
|
382
|
-
- features/step_definitions/cli_steps.rb
|
383
|
-
- features/support/env.rb
|
384
|
-
- features/support/http_lib_filters.rb
|
385
|
-
- features/test_frameworks/cucumber.feature
|
386
|
-
- features/test_frameworks/rspec_macro.feature
|
387
|
-
- features/test_frameworks/rspec_metadata.feature
|
388
|
-
- features/test_frameworks/test_unit.feature
|
389
315
|
- lib/vcr.rb
|
390
316
|
- lib/vcr/cassette.rb
|
391
317
|
- lib/vcr/cassette/erb_renderer.rb
|
@@ -402,10 +328,8 @@ files:
|
|
402
328
|
- lib/vcr/configuration.rb
|
403
329
|
- lib/vcr/deprecations.rb
|
404
330
|
- lib/vcr/errors.rb
|
405
|
-
- lib/vcr/extensions/net_http_response.rb
|
406
331
|
- lib/vcr/library_hooks.rb
|
407
332
|
- lib/vcr/library_hooks/excon.rb
|
408
|
-
- lib/vcr/library_hooks/fakeweb.rb
|
409
333
|
- lib/vcr/library_hooks/faraday.rb
|
410
334
|
- lib/vcr/library_hooks/typhoeus.rb
|
411
335
|
- lib/vcr/library_hooks/typhoeus_0.4.rb
|
@@ -428,59 +352,7 @@ files:
|
|
428
352
|
- lib/vcr/util/variable_args_block_caller.rb
|
429
353
|
- lib/vcr/util/version_checker.rb
|
430
354
|
- lib/vcr/version.rb
|
431
|
-
|
432
|
-
- spec/acceptance/threading_spec.rb
|
433
|
-
- spec/fixtures/cassette_spec/1_x_cassette.yml
|
434
|
-
- spec/fixtures/cassette_spec/empty.yml
|
435
|
-
- spec/fixtures/cassette_spec/example.yml
|
436
|
-
- spec/fixtures/cassette_spec/with_localhost_requests.yml
|
437
|
-
- spec/fixtures/fake_example_responses.yml
|
438
|
-
- spec/fixtures/match_requests_on.yml
|
439
|
-
- spec/lib/vcr/cassette/erb_renderer_spec.rb
|
440
|
-
- spec/lib/vcr/cassette/http_interaction_list_spec.rb
|
441
|
-
- spec/lib/vcr/cassette/migrator_spec.rb
|
442
|
-
- spec/lib/vcr/cassette/persisters/file_system_spec.rb
|
443
|
-
- spec/lib/vcr/cassette/persisters_spec.rb
|
444
|
-
- spec/lib/vcr/cassette/serializers_spec.rb
|
445
|
-
- spec/lib/vcr/cassette_spec.rb
|
446
|
-
- spec/lib/vcr/configuration_spec.rb
|
447
|
-
- spec/lib/vcr/deprecations_spec.rb
|
448
|
-
- spec/lib/vcr/errors_spec.rb
|
449
|
-
- spec/lib/vcr/extensions/net_http_response_spec.rb
|
450
|
-
- spec/lib/vcr/library_hooks/excon_spec.rb
|
451
|
-
- spec/lib/vcr/library_hooks/fakeweb_spec.rb
|
452
|
-
- spec/lib/vcr/library_hooks/faraday_spec.rb
|
453
|
-
- spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb
|
454
|
-
- spec/lib/vcr/library_hooks/typhoeus_spec.rb
|
455
|
-
- spec/lib/vcr/library_hooks/webmock_spec.rb
|
456
|
-
- spec/lib/vcr/library_hooks_spec.rb
|
457
|
-
- spec/lib/vcr/middleware/faraday_spec.rb
|
458
|
-
- spec/lib/vcr/middleware/rack_spec.rb
|
459
|
-
- spec/lib/vcr/request_ignorer_spec.rb
|
460
|
-
- spec/lib/vcr/request_matcher_registry_spec.rb
|
461
|
-
- spec/lib/vcr/structs_spec.rb
|
462
|
-
- spec/lib/vcr/test_frameworks/cucumber_spec.rb
|
463
|
-
- spec/lib/vcr/test_frameworks/rspec_spec.rb
|
464
|
-
- spec/lib/vcr/util/hooks_spec.rb
|
465
|
-
- spec/lib/vcr/util/internet_connection_spec.rb
|
466
|
-
- spec/lib/vcr/util/version_checker_spec.rb
|
467
|
-
- spec/lib/vcr/version_spec.rb
|
468
|
-
- spec/lib/vcr_spec.rb
|
469
|
-
- spec/monkey_patches.rb
|
470
|
-
- spec/spec_helper.rb
|
471
|
-
- spec/support/configuration_stubbing.rb
|
472
|
-
- spec/support/cucumber_helpers.rb
|
473
|
-
- spec/support/fixnum_extension.rb
|
474
|
-
- spec/support/http_library_adapters.rb
|
475
|
-
- spec/support/limited_uri.rb
|
476
|
-
- spec/support/ruby_interpreter.rb
|
477
|
-
- spec/support/shared_example_groups/excon.rb
|
478
|
-
- spec/support/shared_example_groups/hook_into_http_library.rb
|
479
|
-
- spec/support/shared_example_groups/request_hooks.rb
|
480
|
-
- spec/support/sinatra_app.rb
|
481
|
-
- spec/support/vcr_localhost_server.rb
|
482
|
-
- spec/support/vcr_stub_helpers.rb
|
483
|
-
homepage: http://vcr.github.io/vcr
|
355
|
+
homepage: https://relishapp.com/vcr/vcr/docs
|
484
356
|
licenses:
|
485
357
|
- MIT
|
486
358
|
metadata: {}
|
@@ -500,121 +372,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
500
372
|
version: '0'
|
501
373
|
requirements: []
|
502
374
|
rubyforge_project:
|
503
|
-
rubygems_version: 2.
|
375
|
+
rubygems_version: 2.6.13
|
504
376
|
signing_key:
|
505
377
|
specification_version: 4
|
506
378
|
summary: Record your test suite's HTTP interactions and replay them during future
|
507
379
|
test runs for fast, deterministic, accurate tests.
|
508
|
-
test_files:
|
509
|
-
- spec/acceptance/concurrency_spec.rb
|
510
|
-
- spec/acceptance/threading_spec.rb
|
511
|
-
- spec/fixtures/cassette_spec/1_x_cassette.yml
|
512
|
-
- spec/fixtures/cassette_spec/empty.yml
|
513
|
-
- spec/fixtures/cassette_spec/example.yml
|
514
|
-
- spec/fixtures/cassette_spec/with_localhost_requests.yml
|
515
|
-
- spec/fixtures/fake_example_responses.yml
|
516
|
-
- spec/fixtures/match_requests_on.yml
|
517
|
-
- spec/lib/vcr/cassette/erb_renderer_spec.rb
|
518
|
-
- spec/lib/vcr/cassette/http_interaction_list_spec.rb
|
519
|
-
- spec/lib/vcr/cassette/migrator_spec.rb
|
520
|
-
- spec/lib/vcr/cassette/persisters/file_system_spec.rb
|
521
|
-
- spec/lib/vcr/cassette/persisters_spec.rb
|
522
|
-
- spec/lib/vcr/cassette/serializers_spec.rb
|
523
|
-
- spec/lib/vcr/cassette_spec.rb
|
524
|
-
- spec/lib/vcr/configuration_spec.rb
|
525
|
-
- spec/lib/vcr/deprecations_spec.rb
|
526
|
-
- spec/lib/vcr/errors_spec.rb
|
527
|
-
- spec/lib/vcr/extensions/net_http_response_spec.rb
|
528
|
-
- spec/lib/vcr/library_hooks/excon_spec.rb
|
529
|
-
- spec/lib/vcr/library_hooks/fakeweb_spec.rb
|
530
|
-
- spec/lib/vcr/library_hooks/faraday_spec.rb
|
531
|
-
- spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb
|
532
|
-
- spec/lib/vcr/library_hooks/typhoeus_spec.rb
|
533
|
-
- spec/lib/vcr/library_hooks/webmock_spec.rb
|
534
|
-
- spec/lib/vcr/library_hooks_spec.rb
|
535
|
-
- spec/lib/vcr/middleware/faraday_spec.rb
|
536
|
-
- spec/lib/vcr/middleware/rack_spec.rb
|
537
|
-
- spec/lib/vcr/request_ignorer_spec.rb
|
538
|
-
- spec/lib/vcr/request_matcher_registry_spec.rb
|
539
|
-
- spec/lib/vcr/structs_spec.rb
|
540
|
-
- spec/lib/vcr/test_frameworks/cucumber_spec.rb
|
541
|
-
- spec/lib/vcr/test_frameworks/rspec_spec.rb
|
542
|
-
- spec/lib/vcr/util/hooks_spec.rb
|
543
|
-
- spec/lib/vcr/util/internet_connection_spec.rb
|
544
|
-
- spec/lib/vcr/util/version_checker_spec.rb
|
545
|
-
- spec/lib/vcr/version_spec.rb
|
546
|
-
- spec/lib/vcr_spec.rb
|
547
|
-
- spec/monkey_patches.rb
|
548
|
-
- spec/spec_helper.rb
|
549
|
-
- spec/support/configuration_stubbing.rb
|
550
|
-
- spec/support/cucumber_helpers.rb
|
551
|
-
- spec/support/fixnum_extension.rb
|
552
|
-
- spec/support/http_library_adapters.rb
|
553
|
-
- spec/support/limited_uri.rb
|
554
|
-
- spec/support/ruby_interpreter.rb
|
555
|
-
- spec/support/shared_example_groups/excon.rb
|
556
|
-
- spec/support/shared_example_groups/hook_into_http_library.rb
|
557
|
-
- spec/support/shared_example_groups/request_hooks.rb
|
558
|
-
- spec/support/sinatra_app.rb
|
559
|
-
- spec/support/vcr_localhost_server.rb
|
560
|
-
- spec/support/vcr_stub_helpers.rb
|
561
|
-
- features/about_these_examples.md
|
562
|
-
- features/cassettes/allow_unused_http_interactions.feature
|
563
|
-
- features/cassettes/automatic_re_recording.feature
|
564
|
-
- features/cassettes/decompress.feature
|
565
|
-
- features/cassettes/dynamic_erb.feature
|
566
|
-
- features/cassettes/exclusive.feature
|
567
|
-
- features/cassettes/format.feature
|
568
|
-
- features/cassettes/freezing_time.feature
|
569
|
-
- features/cassettes/naming.feature
|
570
|
-
- features/cassettes/no_cassette.feature
|
571
|
-
- features/cassettes/update_content_length_header.feature
|
572
|
-
- features/CHANGELOG.md
|
573
|
-
- features/configuration/allow_http_connections_when_no_cassette.feature
|
574
|
-
- features/configuration/cassette_library_dir.feature
|
575
|
-
- features/configuration/debug_logging.feature
|
576
|
-
- features/configuration/default_cassette_options.feature
|
577
|
-
- features/configuration/filter_sensitive_data.feature
|
578
|
-
- features/configuration/hook_into.feature
|
579
|
-
- features/configuration/ignore_request.feature
|
580
|
-
- features/configuration/preserve_exact_body_bytes.feature
|
581
|
-
- features/configuration/query_parser.feature
|
582
|
-
- features/configuration/uri_parser.feature
|
583
|
-
- features/CONTRIBUTING.md
|
584
|
-
- features/getting_started.md
|
585
|
-
- features/hooks/after_http_request.feature
|
586
|
-
- features/hooks/around_http_request.feature
|
587
|
-
- features/hooks/before_http_request.feature
|
588
|
-
- features/hooks/before_playback.feature
|
589
|
-
- features/hooks/before_record.feature
|
590
|
-
- features/http_libraries/em_http_request.feature
|
591
|
-
- features/http_libraries/net_http.feature
|
592
|
-
- features/LICENSE.md
|
593
|
-
- features/middleware/faraday.feature
|
594
|
-
- features/middleware/rack.feature
|
595
|
-
- features/README.md
|
596
|
-
- features/record_modes/all.feature
|
597
|
-
- features/record_modes/new_episodes.feature
|
598
|
-
- features/record_modes/none.feature
|
599
|
-
- features/record_modes/once.feature
|
600
|
-
- features/request_matching/body.feature
|
601
|
-
- features/request_matching/body_as_json.feature
|
602
|
-
- features/request_matching/custom_matcher.feature
|
603
|
-
- features/request_matching/headers.feature
|
604
|
-
- features/request_matching/host.feature
|
605
|
-
- features/request_matching/identical_request_sequence.feature
|
606
|
-
- features/request_matching/method.feature
|
607
|
-
- features/request_matching/path.feature
|
608
|
-
- features/request_matching/playback_repeats.feature
|
609
|
-
- features/request_matching/query.feature
|
610
|
-
- features/request_matching/README.md
|
611
|
-
- features/request_matching/uri.feature
|
612
|
-
- features/request_matching/uri_without_param.feature
|
613
|
-
- features/step_definitions/cli_steps.rb
|
614
|
-
- features/support/env.rb
|
615
|
-
- features/support/http_lib_filters.rb
|
616
|
-
- features/test_frameworks/cucumber.feature
|
617
|
-
- features/test_frameworks/rspec_macro.feature
|
618
|
-
- features/test_frameworks/rspec_metadata.feature
|
619
|
-
- features/test_frameworks/test_unit.feature
|
620
|
-
- features/Upgrade.md
|
380
|
+
test_files: []
|