vcr 6.2.0 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 902881c25780fa44253365c8f5fd0bb260510d7f754287d74a70275abc2dabce
4
- data.tar.gz: fe52ddaa831a711b7415c350205a2662e833de2c4a6d58b8b6539170645bd218
3
+ metadata.gz: 7556e248e5d024835a72dc471f33ec2f3c6a42fd154cf1d9271ebc7130120a71
4
+ data.tar.gz: ed56ec31ca6d11f6758a45176d318a3fc509c2359c1e2c37f35d1b7f8fec55ef
5
5
  SHA512:
6
- metadata.gz: f79ffb02f15e691a1266c3421043a5ee95f3bd35715687137f139b291c490ee87a93351e0526faa0f29c73deba80ba41740f87d0fc9d50793a6b6d4101c7b116
7
- data.tar.gz: 3e9276ffc9e2a2ae07f4a11054dcb484a324dc18e28a4badaa06df7454db36cfdbfbf38b95aec40c01a15a40cde56fb6cd9868780e50994fc2f554caf86e209a
6
+ metadata.gz: 11449ad24690fd38c6a4e4dc46cfb525db1bb36c03212e01b6e75f5026bfc921fe8d03f5f65b55daf13b043fcfbc27385fc14ba56981a195714cdc8e6ea1637a
7
+ data.tar.gz: 4fb883ed9aaff8ac1657d3a4bd2c5f8ecf1a2bd6c4cb97e71a5e70f1cd9d7315d19f8294d663cd55f3b87fef87b8628ff7c029544504005e309ff6ee9d32687d
data/lib/vcr/cassette.rb CHANGED
@@ -285,11 +285,11 @@ module VCR
285
285
  end
286
286
  end
287
287
 
288
- if should_remove_unused_interactions?
289
- new_recorded_interactions
290
- else
291
- up_to_date_interactions(old_interactions) + new_recorded_interactions
292
- end
288
+ if should_remove_unused_interactions?
289
+ new_recorded_interactions
290
+ else
291
+ up_to_date_interactions(old_interactions) + new_recorded_interactions
292
+ end
293
293
  end
294
294
 
295
295
  def up_to_date_interactions(interactions)
@@ -460,7 +460,7 @@ module VCR
460
460
  # @example
461
461
  # VCR.configure do |c|
462
462
  # c.preserve_exact_body_bytes do |http_message|
463
- # http_message.body.encoding.name == 'ASCII-8BIT' ||
463
+ # http_message.body.encoding == Encoding::BINARY ||
464
464
  # !http_message.body.valid_encoding?
465
465
  # end
466
466
  # end
data/lib/vcr/errors.rb CHANGED
@@ -74,8 +74,8 @@ module VCR
74
74
 
75
75
  private
76
76
 
77
- def relish_version_slug
78
- @relish_version_slug ||= VCR.version.gsub(/\W/, '-')
77
+ def documentation_version_slug
78
+ @documentation_version_slug ||= VCR.version.gsub(/\W/, '-')
79
79
  end
80
80
 
81
81
  def construct_message
@@ -187,7 +187,7 @@ module VCR
187
187
  end
188
188
 
189
189
  def format_foot_note(url, index)
190
- "[#{index + 1}] #{url % relish_version_slug}"
190
+ "[#{index + 1}] #{url % documentation_version_slug}"
191
191
  end
192
192
 
193
193
  # List of suggestions for how to configure VCR to handle the request.
@@ -195,41 +195,49 @@ module VCR
195
195
  :use_new_episodes => [
196
196
  ["You can use the :new_episodes record mode to allow VCR to",
197
197
  "record this new request to the existing cassette"],
198
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/record-modes/new-episodes"
198
+ "https://benoittgt.github.io/vcr/?v=%s#/record_modes/new_episodes"
199
199
  ],
200
200
 
201
201
  :delete_cassette_for_once => [
202
202
  ["The current record mode (:once) does not allow new requests to be recorded",
203
203
  "to a previously recorded cassette. You can delete the cassette file and re-run",
204
204
  "your tests to allow the cassette to be recorded with this request"],
205
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/record-modes/once"
205
+ "https://benoittgt.github.io/vcr/?v=%s#/record_modes/once"
206
206
  ],
207
207
 
208
208
  :deal_with_none => [
209
209
  ["The current record mode (:none) does not allow requests to be recorded. You",
210
210
  "can temporarily change the record mode to :once, delete the cassette file ",
211
211
  "and re-run your tests to allow the cassette to be recorded with this request"],
212
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/record-modes/none"
212
+ "https://benoittgt.github.io/vcr/?v=%s#/record_modes/none"
213
213
  ],
214
214
 
215
+ :none_without_file => [
216
+ ["The current record mode (:none) does not allow requests to be recorded.",
217
+ "One or more cassette names registered was not found. Use ",
218
+ ":new_episodes or :once record modes to record a new cassette"],
219
+ "https://benoittgt.github.io/vcr/?v=%s#/record_modes/none"
220
+ ],
221
+
222
+
215
223
  :use_a_cassette => [
216
224
  ["If you want VCR to record this request and play it back during future test",
217
225
  "runs, you should wrap your test (or this portion of your test) in a",
218
226
  "`VCR.use_cassette` block"],
219
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/getting-started"
227
+ "https://benoittgt.github.io/vcr/?v=%s#/getting_started"
220
228
  ],
221
229
 
222
230
  :allow_http_connections_when_no_cassette => [
223
231
  ["If you only want VCR to handle requests made while a cassette is in use,",
224
232
  "configure `allow_http_connections_when_no_cassette = true`. VCR will",
225
233
  "ignore this request since it is made when there is no cassette"],
226
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/configuration/allow-http-connections-when-no-cassette"
234
+ "https://benoittgt.github.io/vcr/?v=%s#/configuration/allow_http_connections_when_no_cassette"
227
235
  ],
228
236
 
229
237
  :ignore_request => [
230
238
  ["If you want VCR to ignore this request (and others like it), you can",
231
239
  "set an `ignore_request` callback"],
232
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/configuration/ignore-request"
240
+ "https://benoittgt.github.io/vcr/?v=%s#/configuration/ignore_request"
233
241
  ],
234
242
 
235
243
  :allow_playback_repeats => [
@@ -237,7 +245,7 @@ module VCR
237
245
  "but it has already been played back. If you wish to allow a single HTTP",
238
246
  "interaction to be played back multiple times, set the `:allow_playback_repeats`",
239
247
  "cassette option"],
240
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/request-matching/playback-repeats"
248
+ "https://benoittgt.github.io/vcr/?v=%s#/request_matching/playback_repeats"
241
249
  ],
242
250
 
243
251
  :match_requests_on => [
@@ -245,14 +253,14 @@ module VCR
245
253
  "played back. If your request is non-deterministic, you may need to",
246
254
  "change your :match_requests_on cassette option to be more lenient",
247
255
  "or use a custom request matcher to allow it to match"],
248
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/request-matching"
256
+ "https://benoittgt.github.io/vcr/?v=%s#/request_matching"
249
257
  ],
250
258
 
251
259
  :try_debug_logger => [
252
260
  ["If you're surprised VCR is raising this error",
253
261
  "and want insight about how VCR attempted to handle the request,",
254
262
  "you can use the debug_logger configuration option to log more details"],
255
- "https://www.relishapp.com/vcr/vcr/v/%s/docs/configuration/debug-logging"
263
+ "https://benoittgt.github.io/vcr/?v=%s#/configuration/debug_logging"
256
264
  ]
257
265
  }
258
266
 
@@ -284,7 +292,7 @@ module VCR
284
292
  record_modes = current_cassettes.map(&:record_mode)
285
293
 
286
294
  if record_modes.all?{|r| r == :none }
287
- [:deal_with_none]
295
+ none_suggestion
288
296
  elsif record_modes.all?{|r| r == :once }
289
297
  [:delete_cassette_for_once]
290
298
  else
@@ -292,6 +300,14 @@ module VCR
292
300
  end
293
301
  end
294
302
 
303
+ def none_suggestion
304
+ if current_cassettes.any? {|c| !File.exist?(c.file) }
305
+ [:none_without_file]
306
+ else
307
+ [:deal_with_none]
308
+ end
309
+ end
310
+
295
311
  def has_used_interaction_matching?
296
312
  current_cassettes.any?{|c| c.http_interactions.has_used_interaction_matching?(request) }
297
313
  end
@@ -1,4 +1,5 @@
1
1
  require 'faraday'
2
+ require 'faraday/multipart'
2
3
  require 'vcr/util/version_checker'
3
4
  require 'vcr/request_handler'
4
5
 
@@ -8,7 +8,7 @@ module VCR
8
8
 
9
9
  define_hook :ignore_request
10
10
 
11
- LOCALHOST_ALIASES = %w( localhost 127.0.0.1 0.0.0.0 )
11
+ LOCALHOST_ALIASES = %w( localhost 127.0.0.1 0.0.0.0 host.docker.internal )
12
12
 
13
13
  def initialize
14
14
  ignore_request do |request|
data/lib/vcr/structs.rb CHANGED
@@ -31,13 +31,16 @@ module VCR
31
31
  string.force_encoding(encoding)
32
32
  end
33
33
 
34
- def try_encode_string(string, encoding)
35
- return string if encoding.nil? || string.encoding.name == encoding
34
+ def try_encode_string(string, encoding_name)
35
+ return string if encoding_name.nil?
36
+
37
+ encoding = Encoding.find(encoding_name)
38
+ return string if string.encoding == encoding
36
39
 
37
40
  # ASCII-8BIT just means binary, so encoding to it is nonsensical
38
41
  # and yet "\u00f6".encode("ASCII-8BIT") raises an error.
39
42
  # Instead, we'll force encode it (essentially just tagging it as binary)
40
- return string.force_encoding(encoding) if encoding == "ASCII-8BIT"
43
+ return string.force_encoding(encoding) if encoding == Encoding::BINARY
41
44
 
42
45
  string.encode(encoding)
43
46
  rescue EncodingError => e
@@ -304,7 +307,7 @@ module VCR
304
307
  #
305
308
  # @return [Proc] the proc
306
309
  def to_proc
307
- lambda { proceed }
310
+ proc { proceed }
308
311
  end
309
312
 
310
313
  undef method
data/lib/vcr/version.rb CHANGED
@@ -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 = +'6.2.0'
13
+ string = +'6.3.0'
14
14
 
15
15
  def string.parts
16
16
  split('.').map { |p| p.to_i }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vcr
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.0
4
+ version: 6.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myron Marston
@@ -10,308 +10,16 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-06-26 00:00:00.000000000 Z
13
+ date: 2024-08-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: bundler
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '2.0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '2.0'
29
- - !ruby/object:Gem::Dependency
30
- name: rspec
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '3.0'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '3.0'
43
- - !ruby/object:Gem::Dependency
44
- name: test-unit
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: 3.4.4
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: 3.4.4
57
- - !ruby/object:Gem::Dependency
58
- name: rake
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 12.3.3
64
- type: :development
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 12.3.3
71
- - !ruby/object:Gem::Dependency
72
- name: pry
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '0.9'
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '0.9'
85
- - !ruby/object:Gem::Dependency
86
- name: pry-doc
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '0.6'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '0.6'
99
- - !ruby/object:Gem::Dependency
100
- name: codeclimate-test-reporter
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: '0.4'
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: '0.4'
113
- - !ruby/object:Gem::Dependency
114
- name: yard
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '0'
120
- type: :development
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: '0'
127
- - !ruby/object:Gem::Dependency
128
- name: rack
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- version: '0'
141
- - !ruby/object:Gem::Dependency
142
- name: webmock
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: '0'
148
- type: :development
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- version: '0'
155
- - !ruby/object:Gem::Dependency
156
- name: hashdiff
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: 1.0.0.beta1
162
- - - "<"
163
- - !ruby/object:Gem::Version
164
- version: 2.0.0
165
- type: :development
166
- prerelease: false
167
- version_requirements: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- version: 1.0.0.beta1
172
- - - "<"
173
- - !ruby/object:Gem::Version
174
- version: 2.0.0
175
- - !ruby/object:Gem::Dependency
176
- name: cucumber
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '7.0'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '7.0'
189
- - !ruby/object:Gem::Dependency
190
- name: aruba
191
- requirement: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: 0.14.14
196
- type: :development
197
- prerelease: false
198
- version_requirements: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: 0.14.14
203
- - !ruby/object:Gem::Dependency
204
- name: faraday
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: 0.11.0
210
- - - "<"
211
- - !ruby/object:Gem::Version
212
- version: 2.0.0
213
- type: :development
214
- prerelease: false
215
- version_requirements: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - ">="
218
- - !ruby/object:Gem::Version
219
- version: 0.11.0
220
- - - "<"
221
- - !ruby/object:Gem::Version
222
- version: 2.0.0
223
- - !ruby/object:Gem::Dependency
224
- name: httpclient
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: '0'
237
- - !ruby/object:Gem::Dependency
238
- name: excon
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- version: 0.62.0
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: 0.62.0
251
- - !ruby/object:Gem::Dependency
252
- name: timecop
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- version: '0'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - ">="
263
- - !ruby/object:Gem::Version
264
- version: '0'
265
- - !ruby/object:Gem::Dependency
266
- name: json
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - ">="
270
- - !ruby/object:Gem::Version
271
- version: '0'
272
- type: :development
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: '0'
279
- - !ruby/object:Gem::Dependency
280
- name: relish
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - ">="
284
- - !ruby/object:Gem::Version
285
- version: '0'
286
- type: :development
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - ">="
291
- - !ruby/object:Gem::Version
292
- version: '0'
293
- - !ruby/object:Gem::Dependency
294
- name: mime-types
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
297
- - - ">="
298
- - !ruby/object:Gem::Version
299
- version: '0'
300
- type: :development
301
- prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - ">="
305
- - !ruby/object:Gem::Version
306
- version: '0'
307
- - !ruby/object:Gem::Dependency
308
- name: sinatra
16
+ name: base64
309
17
  requirement: !ruby/object:Gem::Requirement
310
18
  requirements:
311
19
  - - ">="
312
20
  - !ruby/object:Gem::Version
313
21
  version: '0'
314
- type: :development
22
+ type: :runtime
315
23
  prerelease: false
316
24
  version_requirements: !ruby/object:Gem::Requirement
317
25
  requirements:
@@ -385,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
93
  - !ruby/object:Gem::Version
386
94
  version: '0'
387
95
  requirements: []
388
- rubygems_version: 3.4.14
96
+ rubygems_version: 3.5.16
389
97
  signing_key:
390
98
  specification_version: 4
391
99
  summary: Record your test suite's HTTP interactions and replay them during future