webmock 3.20.0 → 3.21.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ffda5916fee8f80d1d0a725b7de314652a588658189bb28ad7a984551d406a3a
4
- data.tar.gz: f2aa5c1f78094f72f9c7310dfbb3e866be2acc6910bd3c3a1a4e562744e0fa65
3
+ metadata.gz: 00fe33740b645d6ee1a843e8a863287c784171a411e36a6a03a9964d1a0f5d1e
4
+ data.tar.gz: 581a52244e5ae82837eefbbc750d3785db5c465380885a865332d7c483c73acd
5
5
  SHA512:
6
- metadata.gz: e3fbfb98e4a6d090abd630ccfea78f5b06038e3f6d4683bd1f651f6c8b07b31698f71f9588df1a8d90066ab0d38a088a604204b4f710bfd9249235a9f2664453
7
- data.tar.gz: ffcaf10bc3cd523f6c12c2209fc4e48fb34813e520789ca78ee0cb65b3285f7bf1534ef36faafbd61a49d82ca547f2ecfb3ea74b33b5ba3b4294493f0683942d
6
+ metadata.gz: 3693a98690a3c2a4e2fa32721fee8e5c4fbe7a541e33465707f99fd980bd67a57e2f31ba4f51e13121ac65302ec0d41e154bdde447053bbfd56452d8016e65e1
7
+ data.tar.gz: 254ba266ba69ab8edb4d48ce83c563e0fa514b778bfbf8c0a695150606e1ad954961abdb69f48a95097960681fa79db8e258f46db28ed250522de57eba8b89f2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ # 3.21.1
4
+
5
+ * The stubbed Net::HTTPResponse#uri now returns request.uri, aligning it with the behavior of an actual Net::HTTPResponse.
6
+
7
+ # 3.21.0
8
+
9
+ * Don't use deprecated Rack::VERSION for Rack >= 3
10
+
11
+ Thanks to [Étienne Barrié](https://github.com/etiennebarrie)
12
+
13
+ * Updated HTTPClient adapter, to build request signature using the URI after filters have been applied.
14
+
15
+ Thanks to [Matt Brown](https://github.com/mattbnz)
16
+
3
17
  # 3.20.0
4
18
 
5
19
  * Optimised EmHttpRequestAdapter performance.
data/README.md CHANGED
@@ -1193,6 +1193,8 @@ People who submitted patches and new features or suggested improvements. Many th
1193
1193
  * Earlopain
1194
1194
  * James Brown
1195
1195
  * Kazuhiro NISHIYAMA
1196
+ * Étienne Barrié
1197
+ * Matt Brown
1196
1198
 
1197
1199
  For a full list of contributors you can visit the
1198
1200
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -157,14 +157,14 @@ if defined?(::HTTPClient)
157
157
  end
158
158
 
159
159
  def build_request_signature(req, reuse_existing = false)
160
- uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s)
161
- uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query
162
- uri.port = req.header.request_uri.port
163
-
164
160
  @request_filter.each do |filter|
165
161
  filter.filter_request(req)
166
162
  end
167
163
 
164
+ uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s)
165
+ uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query
166
+ uri.port = req.header.request_uri.port
167
+
168
168
  headers = req.header.all.inject({}) do |hdrs, header|
169
169
  hdrs[header[0]] ||= []
170
170
  hdrs[header[0]] << header[1]
@@ -77,7 +77,7 @@ module WebMock
77
77
  @socket = Net::HTTP.socket_type.new
78
78
  WebMock::CallbackRegistry.invoke_callbacks(
79
79
  {lib: :net_http}, request_signature, webmock_response)
80
- build_net_http_response(webmock_response, &block)
80
+ build_net_http_response(webmock_response, request.uri, &block)
81
81
  elsif WebMock.net_connect_allowed?(request_signature.uri)
82
82
  check_right_http_connection
83
83
  after_request = lambda do |response|
@@ -144,7 +144,7 @@ module WebMock
144
144
  end
145
145
  end
146
146
 
147
- def build_net_http_response(webmock_response, &block)
147
+ def build_net_http_response(webmock_response, request_uri, &block)
148
148
  response = Net::HTTPResponse.send(:response_class, webmock_response.status[0].to_s).new("1.0", webmock_response.status[0].to_s, webmock_response.status[1])
149
149
  body = webmock_response.body
150
150
  body = nil if webmock_response.status[0].to_s == '204'
@@ -159,6 +159,8 @@ module WebMock
159
159
 
160
160
  response.instance_variable_set(:@read, true)
161
161
 
162
+ response.uri = request_uri
163
+
162
164
  response.extend Net::WebMockHTTPResponse
163
165
 
164
166
  if webmock_response.should_timeout
@@ -47,7 +47,9 @@ module WebMock
47
47
  # Rack-specific variables
48
48
  env['rack.input'] = StringIO.new(body)
49
49
  env['rack.errors'] = $stderr
50
- env['rack.version'] = Rack::VERSION
50
+ if !Rack.const_defined?(:RELEASE) || Rack::RELEASE < "3"
51
+ env['rack.version'] = Rack::VERSION
52
+ end
51
53
  env['rack.url_scheme'] = uri.scheme
52
54
  env['rack.run_once'] = true
53
55
  env['rack.session'] = session
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WebMock
4
- VERSION = '3.20.0' unless defined?(::WebMock::VERSION)
4
+ VERSION = '3.21.1' unless defined?(::WebMock::VERSION)
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmock
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.20.0
4
+ version: 3.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Blimke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-06 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -371,9 +371,9 @@ licenses:
371
371
  - MIT
372
372
  metadata:
373
373
  bug_tracker_uri: https://github.com/bblimke/webmock/issues
374
- changelog_uri: https://github.com/bblimke/webmock/blob/v3.20.0/CHANGELOG.md
375
- documentation_uri: https://www.rubydoc.info/gems/webmock/3.20.0
376
- source_code_uri: https://github.com/bblimke/webmock/tree/v3.20.0
374
+ changelog_uri: https://github.com/bblimke/webmock/blob/v3.21.1/CHANGELOG.md
375
+ documentation_uri: https://www.rubydoc.info/gems/webmock/3.21.1
376
+ source_code_uri: https://github.com/bblimke/webmock/tree/v3.21.1
377
377
  wiki_uri: https://github.com/bblimke/webmock/wiki
378
378
  post_install_message:
379
379
  rdoc_options: []
@@ -390,7 +390,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
390
  - !ruby/object:Gem::Version
391
391
  version: '0'
392
392
  requirements: []
393
- rubygems_version: 3.5.3
393
+ rubygems_version: 3.5.6
394
394
  signing_key:
395
395
  specification_version: 4
396
396
  summary: Library for stubbing HTTP requests in Ruby.