1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/uri] Optimize URI#hostname and URI#hostname=

3b7ccfd835
This commit is contained in:
Lukas Zapletal 2020-10-07 13:23:00 +02:00 committed by Hiroshi SHIBATA
parent 6e06c980da
commit c46a4b8c7f
2 changed files with 6 additions and 2 deletions

View file

@ -643,7 +643,7 @@ module URI
#
def hostname
v = self.host
/\A\[(.*)\]\z/ =~ v ? $1 : v
v&.start_with?('[') && v.end_with?(']') ? v[1..-2] : v
end
# Sets the host part of the URI as the argument with brackets for IPv6 addresses.
@ -659,7 +659,7 @@ module URI
# it is wrapped with brackets.
#
def hostname=(v)
v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
v = "[#{v}]" if !(v&.start_with?('[') && v&.end_with?(']')) && v&.index(':')
self.host = v
end

View file

@ -799,8 +799,12 @@ class URI::TestGeneric < Test::Unit::TestCase
u = URI("http://foo/bar")
assert_equal("http://foo/bar", u.to_s)
u.hostname = "[::1]"
assert_equal("http://[::1]/bar", u.to_s)
u.hostname = "::1"
assert_equal("http://[::1]/bar", u.to_s)
u.hostname = ""
assert_equal("http:///bar", u.to_s)
end
def test_build