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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vcr.rb +18 -1
  3. data/lib/vcr/cassette.rb +11 -3
  4. data/lib/vcr/cassette/persisters/file_system.rb +1 -1
  5. data/lib/vcr/configuration.rb +3 -5
  6. data/lib/vcr/deprecations.rb +0 -62
  7. data/lib/vcr/errors.rb +16 -0
  8. data/lib/vcr/library_hooks/typhoeus.rb +37 -8
  9. data/lib/vcr/middleware/faraday.rb +5 -1
  10. data/lib/vcr/structs.rb +1 -1
  11. data/lib/vcr/util/hooks.rb +1 -0
  12. data/lib/vcr/version.rb +1 -1
  13. metadata +9 -249
  14. data/features/CHANGELOG.md +0 -710
  15. data/features/CONTRIBUTING.md +0 -26
  16. data/features/LICENSE.md +0 -20
  17. data/features/README.md +0 -339
  18. data/features/Upgrade.md +0 -289
  19. data/features/about_these_examples.md +0 -18
  20. data/features/cassettes/allow_unused_http_interactions.feature +0 -100
  21. data/features/cassettes/automatic_re_recording.feature +0 -72
  22. data/features/cassettes/decompress.feature +0 -74
  23. data/features/cassettes/dynamic_erb.feature +0 -100
  24. data/features/cassettes/exclusive.feature +0 -126
  25. data/features/cassettes/format.feature +0 -411
  26. data/features/cassettes/freezing_time.feature +0 -68
  27. data/features/cassettes/naming.feature +0 -28
  28. data/features/cassettes/no_cassette.feature +0 -152
  29. data/features/cassettes/update_content_length_header.feature +0 -112
  30. data/features/configuration/allow_http_connections_when_no_cassette.feature +0 -55
  31. data/features/configuration/cassette_library_dir.feature +0 -31
  32. data/features/configuration/debug_logging.feature +0 -58
  33. data/features/configuration/default_cassette_options.feature +0 -100
  34. data/features/configuration/filter_sensitive_data.feature +0 -153
  35. data/features/configuration/hook_into.feature +0 -172
  36. data/features/configuration/ignore_request.feature +0 -192
  37. data/features/configuration/preserve_exact_body_bytes.feature +0 -108
  38. data/features/configuration/query_parser.feature +0 -84
  39. data/features/configuration/uri_parser.feature +0 -93
  40. data/features/getting_started.md +0 -82
  41. data/features/hooks/after_http_request.feature +0 -58
  42. data/features/hooks/around_http_request.feature +0 -57
  43. data/features/hooks/before_http_request.feature +0 -63
  44. data/features/hooks/before_playback.feature +0 -184
  45. data/features/hooks/before_record.feature +0 -172
  46. data/features/http_libraries/em_http_request.feature +0 -250
  47. data/features/http_libraries/net_http.feature +0 -179
  48. data/features/middleware/faraday.feature +0 -56
  49. data/features/middleware/rack.feature +0 -92
  50. data/features/record_modes/all.feature +0 -82
  51. data/features/record_modes/new_episodes.feature +0 -79
  52. data/features/record_modes/none.feature +0 -72
  53. data/features/record_modes/once.feature +0 -95
  54. data/features/request_matching/README.md +0 -30
  55. data/features/request_matching/body.feature +0 -91
  56. data/features/request_matching/body_as_json.feature +0 -90
  57. data/features/request_matching/custom_matcher.feature +0 -135
  58. data/features/request_matching/headers.feature +0 -85
  59. data/features/request_matching/host.feature +0 -95
  60. data/features/request_matching/identical_request_sequence.feature +0 -89
  61. data/features/request_matching/method.feature +0 -96
  62. data/features/request_matching/path.feature +0 -96
  63. data/features/request_matching/playback_repeats.feature +0 -98
  64. data/features/request_matching/query.feature +0 -97
  65. data/features/request_matching/uri.feature +0 -94
  66. data/features/request_matching/uri_without_param.feature +0 -101
  67. data/features/step_definitions/cli_steps.rb +0 -199
  68. data/features/support/env.rb +0 -46
  69. data/features/support/http_lib_filters.rb +0 -46
  70. data/features/test_frameworks/cucumber.feature +0 -211
  71. data/features/test_frameworks/rspec_macro.feature +0 -81
  72. data/features/test_frameworks/rspec_metadata.feature +0 -150
  73. data/features/test_frameworks/test_unit.feature +0 -49
  74. data/lib/vcr/extensions/net_http_response.rb +0 -36
  75. data/lib/vcr/library_hooks/fakeweb.rb +0 -197
  76. data/spec/acceptance/concurrency_spec.rb +0 -51
  77. data/spec/acceptance/threading_spec.rb +0 -34
  78. data/spec/fixtures/cassette_spec/1_x_cassette.yml +0 -110
  79. data/spec/fixtures/cassette_spec/empty.yml +0 -0
  80. data/spec/fixtures/cassette_spec/example.yml +0 -111
  81. data/spec/fixtures/cassette_spec/with_localhost_requests.yml +0 -111
  82. data/spec/fixtures/fake_example_responses.yml +0 -110
  83. data/spec/fixtures/match_requests_on.yml +0 -187
  84. data/spec/lib/vcr/cassette/erb_renderer_spec.rb +0 -53
  85. data/spec/lib/vcr/cassette/http_interaction_list_spec.rb +0 -295
  86. data/spec/lib/vcr/cassette/migrator_spec.rb +0 -196
  87. data/spec/lib/vcr/cassette/persisters/file_system_spec.rb +0 -75
  88. data/spec/lib/vcr/cassette/persisters_spec.rb +0 -39
  89. data/spec/lib/vcr/cassette/serializers_spec.rb +0 -182
  90. data/spec/lib/vcr/cassette_spec.rb +0 -618
  91. data/spec/lib/vcr/configuration_spec.rb +0 -326
  92. data/spec/lib/vcr/deprecations_spec.rb +0 -85
  93. data/spec/lib/vcr/errors_spec.rb +0 -178
  94. data/spec/lib/vcr/extensions/net_http_response_spec.rb +0 -86
  95. data/spec/lib/vcr/library_hooks/excon_spec.rb +0 -104
  96. data/spec/lib/vcr/library_hooks/fakeweb_spec.rb +0 -169
  97. data/spec/lib/vcr/library_hooks/faraday_spec.rb +0 -68
  98. data/spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb +0 -36
  99. data/spec/lib/vcr/library_hooks/typhoeus_spec.rb +0 -162
  100. data/spec/lib/vcr/library_hooks/webmock_spec.rb +0 -117
  101. data/spec/lib/vcr/library_hooks_spec.rb +0 -51
  102. data/spec/lib/vcr/middleware/faraday_spec.rb +0 -181
  103. data/spec/lib/vcr/middleware/rack_spec.rb +0 -115
  104. data/spec/lib/vcr/request_ignorer_spec.rb +0 -70
  105. data/spec/lib/vcr/request_matcher_registry_spec.rb +0 -345
  106. data/spec/lib/vcr/structs_spec.rb +0 -732
  107. data/spec/lib/vcr/test_frameworks/cucumber_spec.rb +0 -107
  108. data/spec/lib/vcr/test_frameworks/rspec_spec.rb +0 -94
  109. data/spec/lib/vcr/util/hooks_spec.rb +0 -158
  110. data/spec/lib/vcr/util/internet_connection_spec.rb +0 -37
  111. data/spec/lib/vcr/util/version_checker_spec.rb +0 -31
  112. data/spec/lib/vcr/version_spec.rb +0 -27
  113. data/spec/lib/vcr_spec.rb +0 -354
  114. data/spec/monkey_patches.rb +0 -186
  115. data/spec/spec_helper.rb +0 -63
  116. data/spec/support/configuration_stubbing.rb +0 -8
  117. data/spec/support/cucumber_helpers.rb +0 -39
  118. data/spec/support/fixnum_extension.rb +0 -10
  119. data/spec/support/http_library_adapters.rb +0 -289
  120. data/spec/support/limited_uri.rb +0 -21
  121. data/spec/support/ruby_interpreter.rb +0 -7
  122. data/spec/support/shared_example_groups/excon.rb +0 -63
  123. data/spec/support/shared_example_groups/hook_into_http_library.rb +0 -594
  124. data/spec/support/shared_example_groups/request_hooks.rb +0 -59
  125. data/spec/support/sinatra_app.rb +0 -86
  126. data/spec/support/vcr_localhost_server.rb +0 -76
  127. data/spec/support/vcr_stub_helpers.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b4d30cbef974c49ed29dee25cb2d8024049148a
4
- data.tar.gz: 32d2c73128d06279593abf6ba8c5168028eeec2a
3
+ metadata.gz: 806e6d86ccbe7132de58cc1313e0aef6ab0c2d8d
4
+ data.tar.gz: e86dd3056697f943fe96721fd2e58163fa900c1e
5
5
  SHA512:
6
- metadata.gz: 07428a8f9ad5ffa5a0fa63617c9ca8f285fbe5ddf8a6d6bdee9eeebf972cce481b17c1036abee539dd7d255ee4e877d2dc4152f7f6aae6d9849281c16d3e13bc
7
- data.tar.gz: 95438bbea501e8ee6003f65a8bc1cbf9d3b991d44dbac7db038b7a4317f05956450ff0b438e19fc194c53609807dcc6a88cb176d4fb5cdb7a1a20a59a98b189b
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
@@ -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
@@ -55,7 +55,7 @@ module VCR
55
55
  file_extension = '.' + parts.pop
56
56
  end
57
57
 
58
- parts.join('.').gsub(/[^\w\-\/]+/, '_') + file_extension.to_s
58
+ parts.join('.').gsub(/[^[:word:]\-\/]+/, '_') + file_extension.to_s
59
59
  end
60
60
  end
61
61
  end
@@ -54,16 +54,14 @@ module VCR
54
54
  #
55
55
  # @example
56
56
  # VCR.configure do |c|
57
- # c.hook_into :fakeweb, :typhoeus
57
+ # c.hook_into :webmock, :typhoeus
58
58
  # end
59
59
  #
60
60
  # @param hooks [Array<Symbol>] List of libraries. Valid values are
61
- # `:fakeweb`, `:webmock`, `:typhoeus`, `:excon` and `:faraday`.
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 FakeWeb/WebMock/etc itself is not available
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
 
@@ -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
 
@@ -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
- def self.vcr_response_from(response)
78
- VCR::Response.new \
79
- VCR::ResponseStatus.new(response.code, response.status_message),
80
- response.headers,
81
- response.body,
82
- response.http_version,
83
- { "effective_url" => response.effective_url }
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, nil),
80
+ VCR::ResponseStatus.new(response.status, reason),
77
81
  response.headers,
78
82
  raw_body_from(response.body),
79
83
  nil
@@ -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 or FakeWeb).
277
+ # external library (such as WebMock).
278
278
  # @see #stubbed_by_vcr?
279
279
  # @see #stubbed?
280
280
  def externally_stubbed?
@@ -5,6 +5,7 @@ module VCR
5
5
  module Hooks
6
6
  include VariableArgsBlockCaller
7
7
 
8
+ # @private
8
9
  FilteredHook = Struct.new(:hook, :filters) do
9
10
  include VariableArgsBlockCaller
10
11
 
@@ -10,7 +10,7 @@ module VCR
10
10
  # * `parts` [Array<Integer>] List of the version parts.
11
11
  def version
12
12
  @version ||= begin
13
- string = '3.0.3'
13
+ string = '4.0.0'
14
14
 
15
15
  def string.parts
16
16
  split('.').map { |p| p.to_i }
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: 3.0.3
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: 2016-05-22 00:00:00.000000000 Z
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: '0'
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: '0'
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
- - spec/acceptance/concurrency_spec.rb
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.4.5
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: []