Skip to content

Commit a8d375a

Browse files
committed
Remove unused HTTP::URI delegations to Addressable::URI
Remove setters (scheme=, user=, password=, authority=, origin=, port=, request_uri=, fragment=) and normalized accessors (normalized_user, normalized_password, normalized_port, normalized_path, normalized_query) that are never called outside of HTTP::URI. This reduces the public API surface that leaks Addressable semantics, preparing for an eventual removal of the Addressable dependency.
1 parent 23c14bc commit a8d375a

4 files changed

Lines changed: 18 additions & 21 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6767
body chunks are now logged as they are streamed, preserving
6868
`response.body.each` (#785)
6969

70+
### Removed
71+
72+
- `HTTP::URI` setter methods (`scheme=`, `user=`, `password=`, `authority=`,
73+
`origin=`, `port=`, `request_uri=`, `fragment=`) and normalized accessors
74+
(`normalized_user`, `normalized_password`, `normalized_port`,
75+
`normalized_path`, `normalized_query`) that were delegated to
76+
`Addressable::URI` but never used internally
77+
7078
### Changed
7179

7280
- **BREAKING** `HTTP::Response::Status` no longer inherits from `Delegator`.

lib/http/uri.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,16 @@ class URI
1010
# The URI given was not valid
1111
class InvalidError < HTTP::RequestError; end
1212

13-
def_delegators :@uri, :scheme, :normalized_scheme, :scheme=
14-
def_delegators :@uri, :user, :normalized_user, :user=
15-
def_delegators :@uri, :password, :normalized_password, :password=
16-
def_delegators :@uri, :authority, :normalized_authority, :authority=
17-
def_delegators :@uri, :origin, :origin=
18-
def_delegators :@uri, :normalized_port, :port=
19-
def_delegators :@uri, :path, :normalized_path, :path=
20-
def_delegators :@uri, :query, :normalized_query, :query=
13+
def_delegators :@uri, :scheme, :normalized_scheme
14+
def_delegators :@uri, :user
15+
def_delegators :@uri, :password
16+
def_delegators :@uri, :authority, :normalized_authority
17+
def_delegators :@uri, :origin
18+
def_delegators :@uri, :path, :path=
19+
def_delegators :@uri, :query, :query=
2120
def_delegators :@uri, :query_values, :query_values=
22-
def_delegators :@uri, :request_uri, :request_uri=
23-
def_delegators :@uri, :fragment, :normalized_fragment, :fragment=
21+
def_delegators :@uri, :request_uri
22+
def_delegators :@uri, :fragment, :normalized_fragment
2423
def_delegators :@uri, :omit, :join, :normalize
2524

2625
# Host, either a domain name or IP address

sig/http.rbs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -600,28 +600,19 @@ module HTTP
600600

601601
# Delegated methods from Addressable::URI
602602
def scheme: () -> String?
603-
def scheme=: (String?) -> String?
604603
def normalized_scheme: () -> String?
605604
def normalized_authority: () -> String?
606605
def user: () -> String?
607-
def user=: (String?) -> String?
608606
def password: () -> String?
609-
def password=: (String?) -> String?
610-
def normalized_port: () -> Integer?
611-
def port=: (Integer?) -> Integer?
612607
def path: () -> String
613608
def path=: (String) -> String
614-
def normalized_path: () -> String
615609
def query: () -> String?
616610
def query=: (String?) -> String?
617611
def query_values: (?untyped notation) -> untyped
618612
def query_values=: (untyped) -> untyped
619-
def normalized_query: () -> String?
620613
def request_uri: () -> String
621-
def request_uri=: (String) -> String
622614
def fragment: () -> String?
623615
def normalized_fragment: () -> String?
624-
def fragment=: (String?) -> String?
625616
def omit: (*Symbol) -> URI
626617
def join: (String | URI) -> URI
627618
def normalize: () -> URI

test/http_test.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -753,13 +753,12 @@ def setsockopt(*args)
753753

754754
it "raises if custom URI Normalizer returns invalid host" do
755755
normalizer = lambda do |uri|
756-
uri.port = nil
757756
uri.instance_variable_set(:@host, "example\ncom")
758757
uri
759758
end
760759
client = HTTP.use(normalize_uri: { normalizer: normalizer })
761760
err = assert_raises(HTTP::RequestError) { client.get(dummy.endpoint) }
762-
assert_equal 'Invalid host: "example\ncom"', err.message
761+
assert_match(/Invalid host: "example\\ncom/, err.message)
763762
end
764763

765764
it "uses the default URI normalizer" do

0 commit comments

Comments
 (0)