Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions lib/uri/generic.rb
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def self.build(args)
# +fragment+::
# Part of the URI after '#' character.
# +parser+::
# Parser for internal use [URI::DEFAULT_PARSER by default].
# Parser for internal use [URI::RFC3986_PARSER by default].
# +arg_check+::
# Check arguments [false by default].
#
Expand All @@ -171,7 +171,7 @@ def initialize(scheme,
path, opaque,
query,
fragment,
parser = DEFAULT_PARSER,
parser = RFC3986_PARSER,
arg_check = false)
@scheme = nil
@user = nil
Expand All @@ -182,7 +182,7 @@ def initialize(scheme,
@query = nil
@opaque = nil
@fragment = nil
@parser = parser == DEFAULT_PARSER ? nil : parser
@parser = parser == RFC3986_PARSER ? nil : parser

if arg_check
self.scheme = scheme
Expand Down Expand Up @@ -284,13 +284,13 @@ def registry # :nodoc:

# Returns the parser to be used.
#
# Unless a URI::Parser is defined, DEFAULT_PARSER is used.
# Unless a URI::Parser is defined, RFC3986_PARSER is used.
#
def parser
if !defined?(@parser) || !@parser
DEFAULT_PARSER
RFC3986_PARSER
else
@parser || DEFAULT_PARSER
@parser || RFC3986_PARSER
end
end

Expand Down
4 changes: 4 additions & 0 deletions test/uri/test_generic.rb
Original file line number Diff line number Diff line change
Expand Up @@ -841,6 +841,10 @@ def test_build
assert_equal(":5432", u.to_s)
assert_equal(5432, u.port)

u = URI::Generic.build(:host => "underscore_host.test")
assert_equal("//underscore_host.test", u.to_s)
assert_equal("underscore_host.test", u.host)

u = URI::Generic.build(:scheme => "http", :host => "::1", :path => "/bar/baz")
assert_equal("http://[::1]/bar/baz", u.to_s)
assert_equal("[::1]", u.host)
Expand Down