summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/uri/generic.rb2
-rw-r--r--test/uri/test_generic.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb
index 2a066a4cb6..044d408f50 100644
--- a/lib/uri/generic.rb
+++ b/lib/uri/generic.rb
@@ -1341,7 +1341,7 @@ module URI
if @opaque
str << @opaque
else
- if @host
+ if @host || %w[file postgres].include?(@scheme)
str << '//'
end
if self.userinfo
diff --git a/test/uri/test_generic.rb b/test/uri/test_generic.rb
index aa782db27e..b77717f949 100644
--- a/test/uri/test_generic.rb
+++ b/test/uri/test_generic.rb
@@ -20,6 +20,10 @@ class URI::TestGeneric < Test::Unit::TestCase
str = URI(exp).to_s
assert_equal exp, str
assert_not_predicate str, :frozen?, '[ruby-core:71785] [Bug #11759]'
+
+ assert_equal "file:///foo", URI("file:///foo").to_s
+ assert_equal "postgres:///foo", URI("postgres:///foo").to_s
+ assert_equal "http:/foo", URI("http:///foo").to_s
end
def test_parse