wreq 1.2.5-aarch64-linux → 1.2.7-aarch64-linux

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.
@@ -0,0 +1,311 @@
1
+ require "test_helper"
2
+
3
+ class OptionValidationTest < Minitest::Test
4
+ INVALID_URL = "not a url"
5
+
6
+ def test_unknown_client_option_names_every_invalid_key_without_values
7
+ secret = "must-not-appear"
8
+
9
+ error = assert_raises(ArgumentError) do
10
+ Wreq::Client.new(timout: secret, history: secret)
11
+ end
12
+
13
+ assert_includes error.message, ":timout"
14
+ assert_includes error.message, ":history"
15
+ refute_includes error.message, secret
16
+ end
17
+
18
+ def test_unknown_options_are_checked_before_known_values
19
+ secret = "must-not-appear"
20
+
21
+ error = assert_raises(ArgumentError) do
22
+ Wreq::Client.new(timeout: secret, history: Object.new, timout: secret)
23
+ end
24
+
25
+ assert_includes error.message, ":history"
26
+ assert_includes error.message, ":timout"
27
+ refute_includes error.message, secret
28
+
29
+ conflict_error = assert_raises(ArgumentError) do
30
+ Wreq::Client.new(http1_only: true, http2_only: true, history: secret)
31
+ end
32
+ assert_includes conflict_error.message, ":history"
33
+ refute_includes conflict_error.message, secret
34
+ end
35
+
36
+ def test_unknown_request_options_raise_for_client_and_module_methods
37
+ client_error = assert_raises(ArgumentError) do
38
+ Wreq::Client.new.get(INVALID_URL, history: true)
39
+ end
40
+ module_error = assert_raises(ArgumentError) do
41
+ Wreq.get(INVALID_URL, history: true)
42
+ end
43
+
44
+ assert_includes client_error.message, ":history"
45
+ assert_includes module_error.message, ":history"
46
+ end
47
+
48
+ def test_hash_expansion_uses_the_same_validation
49
+ valid = {timeout: 1, allow_redirects: true, max_redirects: 2}
50
+ invalid = {timout: 1}
51
+
52
+ assert_instance_of Wreq::Client, Wreq::Client.new(**valid)
53
+ error = assert_raises(ArgumentError) { Wreq::Client.new(**invalid) }
54
+ assert_includes error.message, ":timout"
55
+ end
56
+
57
+ def test_string_option_keys_are_supported_and_duplicate_forms_are_rejected
58
+ assert_instance_of Wreq::Client, Wreq::Client.new({"timeout" => 1})
59
+
60
+ error = assert_raises(ArgumentError) do
61
+ Wreq::Client.new({:timeout => 1, "timeout" => 2})
62
+ end
63
+ assert_includes error.message, "duplicate option: :timeout"
64
+ end
65
+
66
+ def test_non_string_or_symbol_option_key_raises_type_error
67
+ error = assert_raises(TypeError) { Wreq::Client.new({1 => true}) }
68
+
69
+ assert_includes error.message, "option keys"
70
+ end
71
+
72
+ def test_hash_subclass_cannot_hide_unknown_options
73
+ options_class = Class.new(Hash) do
74
+ def keys
75
+ []
76
+ end
77
+ end
78
+ options = options_class.new
79
+ options[:timout] = 1
80
+
81
+ error = assert_raises(ArgumentError) { Wreq::Client.new(options) }
82
+ assert_includes error.message, ":timout"
83
+ end
84
+
85
+ def test_invalid_known_values_name_the_option
86
+ timeout_error = assert_raises(TypeError) do
87
+ Wreq::Client.new(timeout: "slow")
88
+ end
89
+ address_error = assert_raises(ArgumentError) do
90
+ Wreq::Client.new(local_address: "not-an-address")
91
+ end
92
+ proxy_error = assert_raises(TypeError) do
93
+ Wreq::Client.new(proxy: Object.new)
94
+ end
95
+ proxy_uri_error = assert_raises(Wreq::BuilderError) do
96
+ Wreq::Client.new(proxy: "invalid://")
97
+ end
98
+ orig_headers_error = assert_raises(Wreq::BuilderError) do
99
+ Wreq.get(INVALID_URL, orig_headers: ["Accept", Object.new])
100
+ end
101
+
102
+ assert_includes timeout_error.message, ":timeout"
103
+ assert_includes address_error.message, ":local_address"
104
+ assert_includes proxy_error.message, ":proxy"
105
+ assert_includes proxy_uri_error.message, ":proxy"
106
+ assert_includes orig_headers_error.message, ":orig_headers"
107
+ end
108
+
109
+ def test_consumed_body_sender_error_preserves_class_and_names_option
110
+ sender = Wreq::BodySender.new(1)
111
+
112
+ assert_raises(Wreq::BuilderError) do
113
+ Wreq.post(INVALID_URL, body: sender)
114
+ end
115
+ error = assert_raises(Wreq::MemoryError) do
116
+ Wreq.post(INVALID_URL, body: sender)
117
+ end
118
+
119
+ assert_includes error.message, ":body"
120
+ ensure
121
+ sender&.close
122
+ end
123
+
124
+ def test_option_conversion_preserves_raised_exception_class
125
+ source = Object.new
126
+ source.define_singleton_method(:to_a) { raise IOError, "boom" }
127
+
128
+ error = assert_raises(IOError) do
129
+ Wreq::Client.new(headers: source)
130
+ end
131
+
132
+ assert_includes error.message, ":headers"
133
+ assert_includes error.message, "boom"
134
+ end
135
+
136
+ def test_out_of_range_integer_names_the_option
137
+ error = assert_raises(ArgumentError) do
138
+ Wreq::Client.new(timeout: 2**256)
139
+ end
140
+
141
+ assert_includes error.message, ":timeout"
142
+ end
143
+
144
+ def test_invalid_request_value_names_the_option_before_network_io
145
+ error = assert_raises(TypeError) do
146
+ Wreq.get(INVALID_URL, cookies: Object.new)
147
+ end
148
+
149
+ assert_includes error.message, ":cookies"
150
+ end
151
+
152
+ def test_client_constructor_rejects_non_hash_and_extra_arguments
153
+ assert_raises(TypeError) { Wreq::Client.new("ignored") }
154
+ assert_raises(ArgumentError) { Wreq::Client.new({}, {}) }
155
+ end
156
+
157
+ def test_emulation_constructor_rejects_invalid_arguments_and_options
158
+ assert_raises(TypeError) { Wreq::Emulation.new("ignored") }
159
+ assert_raises(ArgumentError) { Wreq::Emulation.new({}, {}) }
160
+
161
+ error = assert_raises(ArgumentError) { Wreq::Emulation.new(unknown: true) }
162
+ assert_includes error.message, ":unknown"
163
+ end
164
+
165
+ def test_invalid_emulation_values_name_the_option
166
+ http2_error = assert_raises(TypeError) do
167
+ Wreq::Emulation.new(http2: "yes")
168
+ end
169
+ profile_error = assert_raises(TypeError) do
170
+ Wreq::Emulation.new(profile: Object.new)
171
+ end
172
+
173
+ assert_includes http2_error.message, ":http2"
174
+ assert_includes profile_error.message, ":profile"
175
+ end
176
+
177
+ def test_body_options_are_mutually_exclusive
178
+ error = assert_raises(ArgumentError) do
179
+ Wreq.post(INVALID_URL, body: "raw", form: {a: 1}, json: {b: 2})
180
+ end
181
+
182
+ assert_includes error.message, ":body"
183
+ assert_includes error.message, ":form"
184
+ assert_includes error.message, ":json"
185
+ end
186
+
187
+ def test_body_conflict_does_not_consume_sender
188
+ sender = Wreq::BodySender.new(1)
189
+
190
+ assert_raises(ArgumentError) do
191
+ Wreq.post(INVALID_URL, body: sender, json: {value: true})
192
+ end
193
+ assert_raises(Wreq::BuilderError) do
194
+ Wreq.post(INVALID_URL, body: sender)
195
+ end
196
+ ensure
197
+ sender&.close
198
+ end
199
+
200
+ def test_dependent_option_error_does_not_consume_sender
201
+ sender = Wreq::BodySender.new(1)
202
+
203
+ assert_raises(ArgumentError) do
204
+ Wreq.post(INVALID_URL, body: sender, max_redirects: 2)
205
+ end
206
+ assert_raises(Wreq::BuilderError) do
207
+ Wreq.post(INVALID_URL, body: sender)
208
+ end
209
+ ensure
210
+ sender&.close
211
+ end
212
+
213
+ def test_authentication_options_are_mutually_exclusive
214
+ error = assert_raises(ArgumentError) do
215
+ Wreq.get(
216
+ INVALID_URL,
217
+ auth: "secret",
218
+ bearer_auth: "secret",
219
+ basic_auth: ["user", "secret"]
220
+ )
221
+ end
222
+
223
+ assert_includes error.message, ":auth"
224
+ assert_includes error.message, ":bearer_auth"
225
+ assert_includes error.message, ":basic_auth"
226
+ refute_includes error.message, "secret"
227
+ end
228
+
229
+ def test_protocol_only_options_are_mutually_exclusive
230
+ error = assert_raises(ArgumentError) do
231
+ Wreq::Client.new(http1_only: true, http2_only: true)
232
+ end
233
+
234
+ assert_includes error.message, ":http1_only"
235
+ assert_includes error.message, ":http2_only"
236
+ end
237
+
238
+ def test_validation_reports_the_first_failed_rule
239
+ error = assert_raises(ArgumentError) do
240
+ Wreq::Client.new(
241
+ http1_only: true,
242
+ http2_only: true,
243
+ max_redirects: 2,
244
+ headers: Object.new
245
+ )
246
+ end
247
+
248
+ assert_includes error.message, ":http1_only"
249
+ assert_includes error.message, ":http2_only"
250
+ refute_includes error.message, ":max_redirects"
251
+ end
252
+
253
+ def test_explicit_proxy_and_no_proxy_are_mutually_exclusive
254
+ error = assert_raises(ArgumentError) do
255
+ Wreq::Client.new(proxy: "http://127.0.0.1:8080", no_proxy: true)
256
+ end
257
+
258
+ assert_includes error.message, ":proxy"
259
+ assert_includes error.message, ":no_proxy"
260
+ end
261
+
262
+ def test_max_redirects_requires_redirects_to_be_enabled
263
+ client_error = assert_raises(ArgumentError) do
264
+ Wreq::Client.new(max_redirects: 2)
265
+ end
266
+ disabled_error = assert_raises(ArgumentError) do
267
+ Wreq::Client.new(allow_redirects: false, max_redirects: 2)
268
+ end
269
+ request_error = assert_raises(ArgumentError) do
270
+ Wreq.get(INVALID_URL, max_redirects: 2)
271
+ end
272
+
273
+ [client_error, disabled_error, request_error].each do |error|
274
+ assert_includes error.message, ":max_redirects"
275
+ assert_includes error.message, ":allow_redirects"
276
+ end
277
+ end
278
+
279
+ def test_unsupported_platform_option_raises_argument_error
280
+ return if RUBY_PLATFORM.match?(/linux|android|fuchsia/)
281
+
282
+ error = assert_raises(ArgumentError) do
283
+ Wreq::Client.new(tcp_user_timeout: 1)
284
+ end
285
+ assert_instance_of ArgumentError, error
286
+ assert_includes error.message, ":tcp_user_timeout"
287
+ end
288
+
289
+ def test_windows_rejects_interface_for_client_and_request
290
+ return unless Gem.win_platform?
291
+
292
+ client_error = assert_raises(ArgumentError) do
293
+ Wreq::Client.new(interface: "Ethernet")
294
+ end
295
+ request_error = assert_raises(ArgumentError) do
296
+ Wreq.get(INVALID_URL, interface: "Ethernet")
297
+ end
298
+
299
+ assert_instance_of ArgumentError, client_error
300
+ assert_instance_of ArgumentError, request_error
301
+ assert_includes client_error.message, ":interface"
302
+ assert_includes request_error.message, ":interface"
303
+ end
304
+
305
+ def test_valid_nil_and_zero_option_construction
306
+ assert_instance_of Wreq::Client, Wreq::Client.new
307
+ assert_instance_of Wreq::Client,
308
+ Wreq::Client.new(proxy: nil, interface: nil, tcp_user_timeout: nil)
309
+ assert_instance_of Wreq::Emulation, Wreq::Emulation.new(profile: nil, http2: true)
310
+ end
311
+ end
@@ -0,0 +1,238 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class ValueSemanticsTest < Minitest::Test
6
+ # ---- StatusCode ----
7
+
8
+ def setup
9
+ @response = Wreq.get("#{HTTPBIN_URL}/status/201")
10
+ end
11
+
12
+ def test_status_code_to_i
13
+ assert_equal 201, @response.status.to_i
14
+ end
15
+
16
+ def test_status_code_as_int_still_works
17
+ assert_equal 201, @response.status.as_int
18
+ end
19
+
20
+ def test_status_code_to_i_matches_as_int
21
+ assert_equal @response.status.as_int, @response.status.to_i
22
+ end
23
+
24
+ def test_status_code_equality
25
+ a = @response.status
26
+ b = @response.status
27
+ assert_equal a, b
28
+ end
29
+
30
+ def test_status_code_eql
31
+ a = @response.status
32
+ b = @response.status
33
+ assert a.eql?(b)
34
+ end
35
+
36
+ def test_status_code_hash_consistent
37
+ a = @response.status
38
+ b = @response.status
39
+ assert_equal a.hash, b.hash
40
+ end
41
+
42
+ def test_status_code_as_hash_key
43
+ status = @response.status
44
+ h = {status => "created"}
45
+ assert_equal "created", h[@response.status]
46
+ end
47
+
48
+ def test_status_code_in_set
49
+ s = Set.new
50
+ s.add(@response.status)
51
+ assert_includes s, @response.status
52
+ end
53
+
54
+ def test_status_code_not_equal_to_integer
55
+ refute_equal @response.status, 201
56
+ refute @response.status.eql?(201)
57
+ end
58
+
59
+ def test_status_code_different_values_not_equal
60
+ ok = Wreq.get("#{HTTPBIN_URL}/status/200").status
61
+ created = @response.status
62
+ refute_equal ok, created
63
+ refute ok.eql?(created)
64
+ end
65
+
66
+ def test_response_code_still_returns_integer
67
+ assert_instance_of Integer, @response.code
68
+ assert_equal 201, @response.code
69
+ end
70
+
71
+ # ---- Version ----
72
+
73
+ def test_version_equality
74
+ assert_equal Wreq::Version::HTTP_11, Wreq::Version::HTTP_11
75
+ assert_equal "HTTP/0.9", Wreq::Version::HTTP_09.to_s
76
+ assert_equal "HTTP/1.0", Wreq::Version::HTTP_10.to_s
77
+ assert_equal "HTTP/1.1", Wreq::Version::HTTP_11.to_s
78
+ assert_equal "HTTP/2.0", Wreq::Version::HTTP_2.to_s
79
+ assert_equal "HTTP/3.0", Wreq::Version::HTTP_3.to_s
80
+ end
81
+
82
+ def test_version_eql
83
+ v = Wreq::Version::HTTP_11
84
+ assert v.eql?(Wreq::Version::HTTP_11)
85
+ end
86
+
87
+ def test_version_hash_consistent
88
+ a = Wreq::Version::HTTP_11
89
+ b = Wreq::Version::HTTP_11
90
+ assert_equal a.hash, b.hash
91
+ end
92
+
93
+ def test_version_different_values_not_equal
94
+ refute_equal Wreq::Version::HTTP_11, Wreq::Version::HTTP_2
95
+ end
96
+
97
+ def test_version_as_hash_key
98
+ v = Wreq::Version::HTTP_11
99
+ h = {v => "http1.1"}
100
+ assert_equal "http1.1", h[Wreq::Version::HTTP_11]
101
+ end
102
+
103
+ def test_version_in_set
104
+ s = Set.new([Wreq::Version::HTTP_11, Wreq::Version::HTTP_2])
105
+ assert_includes s, Wreq::Version::HTTP_11
106
+ assert_includes s, Wreq::Version::HTTP_2
107
+ refute_includes s, Wreq::Version::HTTP_3
108
+ end
109
+
110
+ # ---- Method ----
111
+
112
+ def test_method_to_s
113
+ assert_equal "GET", Wreq::Method::GET.to_s
114
+ assert_equal "POST", Wreq::Method::POST.to_s
115
+ assert_equal "PUT", Wreq::Method::PUT.to_s
116
+ assert_equal "DELETE", Wreq::Method::DELETE.to_s
117
+ assert_equal "HEAD", Wreq::Method::HEAD.to_s
118
+ assert_equal "OPTIONS", Wreq::Method::OPTIONS.to_s
119
+ assert_equal "TRACE", Wreq::Method::TRACE.to_s
120
+ assert_equal "PATCH", Wreq::Method::PATCH.to_s
121
+ end
122
+
123
+ def test_method_to_sym
124
+ assert_equal :get, Wreq::Method::GET.to_sym
125
+ assert_equal :post, Wreq::Method::POST.to_sym
126
+ assert_equal :put, Wreq::Method::PUT.to_sym
127
+ assert_equal :delete, Wreq::Method::DELETE.to_sym
128
+ assert_equal :head, Wreq::Method::HEAD.to_sym
129
+ assert_equal :options, Wreq::Method::OPTIONS.to_sym
130
+ assert_equal :trace, Wreq::Method::TRACE.to_sym
131
+ assert_equal :patch, Wreq::Method::PATCH.to_sym
132
+ end
133
+
134
+ def test_method_equality
135
+ assert_equal Wreq::Method::GET, Wreq::Method::GET
136
+ refute_equal Wreq::Method::GET, Wreq::Method::POST
137
+ end
138
+
139
+ def test_method_eql
140
+ assert Wreq::Method::GET.eql?(Wreq::Method::GET)
141
+ refute Wreq::Method::GET.eql?(Wreq::Method::POST)
142
+ end
143
+
144
+ def test_method_hash_consistent
145
+ assert_equal Wreq::Method::GET.hash, Wreq::Method::GET.hash
146
+ refute_equal Wreq::Method::GET.hash, Wreq::Method::POST.hash
147
+ end
148
+
149
+ def test_method_as_hash_key
150
+ h = {Wreq::Method::GET => "get it"}
151
+ assert_equal "get it", h[Wreq::Method::GET]
152
+ assert_nil h[Wreq::Method::POST]
153
+ end
154
+
155
+ # ---- SameSite ----
156
+
157
+ def test_same_site_to_s
158
+ assert_equal "Strict", Wreq::SameSite::Strict.to_s
159
+ assert_equal "Lax", Wreq::SameSite::Lax.to_s
160
+ assert_equal "None", Wreq::SameSite::None.to_s
161
+ end
162
+
163
+ def test_same_site_to_sym
164
+ assert_equal :strict, Wreq::SameSite::Strict.to_sym
165
+ assert_equal :lax, Wreq::SameSite::Lax.to_sym
166
+ assert_equal :none, Wreq::SameSite::None.to_sym
167
+ end
168
+
169
+ def test_same_site_equality
170
+ assert_equal Wreq::SameSite::Lax, Wreq::SameSite::Lax
171
+ refute_equal Wreq::SameSite::Lax, Wreq::SameSite::Strict
172
+ end
173
+
174
+ def test_same_site_eql_and_hash
175
+ assert Wreq::SameSite::Lax.eql?(Wreq::SameSite::Lax)
176
+ assert_equal Wreq::SameSite::Lax.hash, Wreq::SameSite::Lax.hash
177
+ end
178
+
179
+ # ---- Profile ----
180
+
181
+ def test_profile_equality
182
+ assert_equal Wreq::Profile::Chrome134, Wreq::Profile::Chrome134
183
+ refute_equal Wreq::Profile::Chrome134, Wreq::Profile::Chrome135
184
+ assert_equal "Chrome134", Wreq::Profile::Chrome134.to_s
185
+ assert_equal "SafariIos17_4_1", Wreq::Profile::SafariIos17_4_1.to_s
186
+ assert_equal "OkHttp4_12", Wreq::Profile::OkHttp4_12.to_s
187
+ end
188
+
189
+ def test_profile_eql_and_hash
190
+ assert Wreq::Profile::Chrome134.eql?(Wreq::Profile::Chrome134)
191
+ assert_equal Wreq::Profile::Chrome134.hash, Wreq::Profile::Chrome134.hash
192
+ end
193
+
194
+ def test_profile_as_hash_key
195
+ h = {Wreq::Profile::Chrome134 => "chrome"}
196
+ assert_equal "chrome", h[Wreq::Profile::Chrome134]
197
+ assert_nil h[Wreq::Profile::Chrome135]
198
+ end
199
+
200
+ # ---- Platform ----
201
+
202
+ def test_platform_equality
203
+ assert_equal Wreq::Platform::Windows, Wreq::Platform::Windows
204
+ refute_equal Wreq::Platform::Windows, Wreq::Platform::Linux
205
+ end
206
+
207
+ def test_platform_eql_and_hash
208
+ assert Wreq::Platform::Windows.eql?(Wreq::Platform::Windows)
209
+ assert_equal Wreq::Platform::Windows.hash, Wreq::Platform::Windows.hash
210
+ end
211
+
212
+ def test_platform_to_sym
213
+ assert_equal "Windows", Wreq::Platform::Windows.to_s
214
+ assert_equal "MacOS", Wreq::Platform::MacOS.to_s
215
+ assert_equal "Linux", Wreq::Platform::Linux.to_s
216
+ assert_equal "Android", Wreq::Platform::Android.to_s
217
+ assert_equal "IOS", Wreq::Platform::IOS.to_s
218
+
219
+ assert_equal :windows, Wreq::Platform::Windows.to_sym
220
+ assert_equal :macos, Wreq::Platform::MacOS.to_sym
221
+ assert_equal :linux, Wreq::Platform::Linux.to_sym
222
+ assert_equal :android, Wreq::Platform::Android.to_sym
223
+ assert_equal :ios, Wreq::Platform::IOS.to_sym
224
+ end
225
+
226
+ # ---- Cross-type comparisons ----
227
+
228
+ def test_cross_type_not_equal
229
+ refute_equal Wreq::Method::GET, Wreq::Version::HTTP_11
230
+ refute_equal Wreq::SameSite::Lax, Wreq::Method::GET
231
+ refute_equal Wreq::Platform::Windows, Wreq::Profile::Chrome134
232
+ end
233
+
234
+ def test_cross_type_eql_false
235
+ refute Wreq::Method::GET.eql?(Wreq::Version::HTTP_11)
236
+ refute Wreq::SameSite::Lax.eql?(Wreq::Method::GET)
237
+ end
238
+ end
data/wreq.gemspec CHANGED
@@ -56,7 +56,7 @@ Gem::Specification.new do |spec|
56
56
  # Exclude non-Ruby files from RDoc to prevent parsing errors
57
57
  spec.rdoc_options = ["--exclude", "Cargo\\..*", "--exclude", "\\.rs$"]
58
58
 
59
- spec.requirements = ["Rust >= 1.85"]
59
+ spec.requirements = ["Rust >= 1.97"]
60
60
  # use a Ruby version which:
61
61
  # - supports Rubygems with the ability of compilation of Rust gem
62
62
  # - not end of life
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wreq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.7
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - SearchApi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-15 00:00:00.000000000 Z
11
+ date: 2026-07-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: An easy and powerful Ruby HTTP client with advanced browser fingerprinting
14
14
  that accurately emulates Chrome, Edge, Firefox, Safari, Opera, and OkHttp with precise
@@ -20,6 +20,7 @@ extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
22
  - "./extconf.rb"
23
+ - ".cargo/config.toml"
23
24
  - Gemfile
24
25
  - LICENSE
25
26
  - README.md
@@ -60,7 +61,8 @@ files:
60
61
  - lib/wreq_ruby/http.rb
61
62
  - lib/wreq_ruby/response.rb
62
63
  - script/build_platform_gem.rb
63
- - script/build_windows_gnu.ps1
64
+ - script/rust_env.rb
65
+ - test/body_sender_test.rb
64
66
  - test/client_cookie_test.rb
65
67
  - test/client_test.rb
66
68
  - test/cookie_test.rb
@@ -68,13 +70,16 @@ files:
68
70
  - test/error_handling_test.rb
69
71
  - test/header_test.rb
70
72
  - test/inspect_test.rb
73
+ - test/json_precision_test.rb
71
74
  - test/module_methods_test.rb
75
+ - test/option_validation_test.rb
72
76
  - test/orig_header_test.rb
73
77
  - test/request_parameters_test.rb
74
78
  - test/request_test.rb
75
79
  - test/response_test.rb
76
80
  - test/stream_test.rb
77
81
  - test/test_helper.rb
82
+ - test/value_semantics_test.rb
78
83
  - wreq.gemspec
79
84
  homepage: https://github.com/SearchApi/wreq-ruby
80
85
  licenses:
@@ -108,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
113
  - !ruby/object:Gem::Version
109
114
  version: '0'
110
115
  requirements:
111
- - Rust >= 1.85
116
+ - Rust >= 1.97
112
117
  rubygems_version: 3.5.23
113
118
  signing_key:
114
119
  specification_version: 4