vcr 3.0.3 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []