Skip to content

Commit de70872

Browse files
committed
Merge branch 'main' into emulate
2 parents a48765a + 929bdfc commit de70872

18 files changed

Lines changed: 556 additions & 180 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ Gemfile.lock
1515
vendor/
1616
.vscode
1717
.zed
18+
test.rb

Cargo.lock

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ require "wreq"
4141

4242
# Build a client
4343
client = Wreq::Client.new(emulation: Wreq::Emulation.new(
44-
profile: Wreq::Profile::Chrome147,
44+
profile: Wreq::Profile::Chrome148,
4545
platform: Wreq::Platform::MacOS,
4646
http2: true,
4747
headers: true

lib/wreq.rb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ module Wreq
2424
#
2525
# @param method [Wreq::Method] HTTP method to use
2626
# @param url [String] Target URL
27-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
27+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
2828
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
2929
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
3030
# @param query [Hash, nil] URL query parameters
@@ -55,7 +55,7 @@ def self.request(method, url, **options)
5555
# Send an HTTP GET request.
5656
#
5757
# @param url [String] Target URL
58-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
58+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
5959
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
6060
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
6161
# @param query [Hash, nil] URL query parameters
@@ -86,7 +86,7 @@ def self.get(url, **options)
8686
# Send an HTTP HEAD request.
8787
#
8888
# @param url [String] Target URL
89-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
89+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
9090
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
9191
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
9292
# @param query [Hash, nil] URL query parameters
@@ -117,7 +117,7 @@ def self.head(url, **options)
117117
# Send an HTTP POST request.
118118
#
119119
# @param url [String] Target URL
120-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
120+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
121121
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
122122
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
123123
# @param query [Hash, nil] URL query parameters
@@ -148,7 +148,7 @@ def self.post(url, **options)
148148
# Send an HTTP PUT request.
149149
#
150150
# @param url [String] Target URL
151-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
151+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
152152
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
153153
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
154154
# @param query [Hash, nil] URL query parameters
@@ -179,7 +179,7 @@ def self.put(url, **options)
179179
# Send an HTTP DELETE request.
180180
#
181181
# @param url [String] Target URL
182-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
182+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
183183
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
184184
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
185185
# @param query [Hash, nil] URL query parameters
@@ -210,7 +210,7 @@ def self.delete(url, **options)
210210
# Send an HTTP OPTIONS request.
211211
#
212212
# @param url [String] Target URL
213-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
213+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
214214
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
215215
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
216216
# @param query [Hash, nil] URL query parameters
@@ -241,7 +241,7 @@ def self.options(url, **options)
241241
# Send an HTTP TRACE request.
242242
#
243243
# @param url [String] Target URL
244-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
244+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
245245
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
246246
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
247247
# @param query [Hash, nil] URL query parameters
@@ -272,7 +272,7 @@ def self.trace(url, **options)
272272
# Send an HTTP PATCH request.
273273
#
274274
# @param url [String] Target URL
275-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
275+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
276276
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
277277
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
278278
# @param query [Hash, nil] URL query parameters

lib/wreq_ruby/client.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Client
3535
# @param user_agent [String, nil] Custom User-Agent header value.
3636
# If not specified, a default user agent will be used.
3737
#
38-
# @param headers [Hash{String=>String}, nil] Default headers to include
38+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Default headers to include
3939
# in every request. Header names are case-insensitive. These headers
4040
# can be overridden on a per-request basis.
4141
#
@@ -236,7 +236,7 @@ def self.new(**options)
236236
#
237237
# @param method [Wreq::Method] HTTP method to use
238238
# @param url [String] Target URL
239-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
239+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
240240
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
241241
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
242242
# @param query [Hash, nil] URL query parameters
@@ -267,7 +267,7 @@ def request(method, url, **options)
267267
# Send an HTTP GET request.
268268
#
269269
# @param url [String] Target URL
270-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
270+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
271271
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
272272
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
273273
# @param query [Hash, nil] URL query parameters
@@ -298,7 +298,7 @@ def get(url, **options)
298298
# Send an HTTP HEAD request.
299299
#
300300
# @param url [String] Target URL
301-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
301+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
302302
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
303303
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
304304
# @param query [Hash, nil] URL query parameters
@@ -329,7 +329,7 @@ def head(url, **options)
329329
# Send an HTTP POST request.
330330
#
331331
# @param url [String] Target URL
332-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
332+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
333333
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
334334
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
335335
# @param query [Hash, nil] URL query parameters
@@ -360,7 +360,7 @@ def post(url, **options)
360360
# Send an HTTP PUT request.
361361
#
362362
# @param url [String] Target URL
363-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
363+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
364364
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
365365
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
366366
# @param query [Hash, nil] URL query parameters
@@ -391,7 +391,7 @@ def put(url, **options)
391391
# Send an HTTP DELETE request.
392392
#
393393
# @param url [String] Target URL
394-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
394+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
395395
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
396396
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
397397
# @param query [Hash, nil] URL query parameters
@@ -422,7 +422,7 @@ def delete(url, **options)
422422
# Send an HTTP OPTIONS request.
423423
#
424424
# @param url [String] Target URL
425-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
425+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
426426
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
427427
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
428428
# @param query [Hash, nil] URL query parameters
@@ -453,7 +453,7 @@ def options(url, **options)
453453
# Send an HTTP TRACE request.
454454
#
455455
# @param url [String] Target URL
456-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
456+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
457457
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
458458
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
459459
# @param query [Hash, nil] URL query parameters
@@ -484,7 +484,7 @@ def trace(url, **options)
484484
# Send an HTTP PATCH request.
485485
#
486486
# @param url [String] Target URL
487-
# @param headers [Hash{String=>String}, nil] Custom headers for this request
487+
# @param headers [Wreq::Headers, Hash{String=>String}, nil] Custom headers for this request
488488
# @param orig_headers [Hash{String=>String}, nil] Original headers (raw, unmodified)
489489
# @param default_headers [Hash{String=>String}, nil] Default headers to merge
490490
# @param query [Hash, nil] URL query parameters

lib/wreq_ruby/emulate.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class Profile
5656
Chrome145 = nil
5757
Chrome146 = nil
5858
Chrome147 = nil
59+
Chrome148 = nil
5960

6061
Edge101 = nil
6162
Edge122 = nil
@@ -75,6 +76,7 @@ class Profile
7576
Edge145 = nil
7677
Edge146 = nil
7778
Edge147 = nil
79+
Edge148 = nil
7880

7981
Firefox109 = nil
8082
Firefox117 = nil
@@ -94,6 +96,8 @@ class Profile
9496
Firefox147 = nil
9597
Firefox148 = nil
9698
Firefox149 = nil
99+
Firefox150 = nil
100+
Firefox151 = nil
97101

98102
SafariIos17_2 = nil
99103
SafariIos17_4_1 = nil
@@ -118,6 +122,8 @@ class Profile
118122
Safari26 = nil
119123
Safari26_1 = nil
120124
Safari26_2 = nil
125+
Safari26_3 = nil
126+
Safari26_4 = nil
121127
SafariIos26 = nil
122128
SafariIos26_2 = nil
123129
SafariIPad26 = nil
@@ -147,6 +153,7 @@ class Profile
147153
Opera128 = nil
148154
Opera129 = nil
149155
Opera130 = nil
156+
Opera131 = nils
150157
end
151158

152159
unless method_defined?(:to_s)

lib/wreq_ruby/response.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,17 @@ def text(default_encoding: "UTF-8")
110110
def json
111111
end
112112

113-
# Get a streaming iterator for the response body, yielding each chunk.
113+
# Stream the response body, yielding each chunk to the given block.
114114
#
115115
# This method allows you to process large HTTP responses efficiently,
116116
# by yielding each chunk of the body as it arrives, without loading
117117
# the entire response into memory.
118118
#
119-
# @return An iterator over response body chunks (binary String)
119+
# @return [nil]
120120
# @yield [chunk] Each chunk of the response body as a binary String
121+
# @raise [LocalJumpError] if called without a block
122+
# @raise [Wreq::TimeoutError, Wreq::BodyError, Wreq::ConnectionResetError, Wreq::RequestError]
123+
# if streaming fails while reading the response body
121124
# @example Save response to file
122125
# File.open("output.bin", "wb") do |f|
123126
# response.chunks { |chunk| f.write(chunk) }
@@ -127,7 +130,7 @@ def json
127130
# response.chunks { |chunk| total += chunk.bytesize }
128131
# puts "Downloaded #{total} bytes"
129132
#
130-
# Note: The returned Receiver is only for reading response bodies, not for uploads.
133+
# Exceptions raised inside the block are propagated to the caller.
131134
def chunks
132135
end
133136

0 commit comments

Comments
 (0)