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