Issue #13154 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Rejected

I agree with @phluid61, plain path provided to `URI.parse` should not be treated as implicit `file` scheme.  Such a change would break backwards compatibility for the methods mentioned, and I think `URI.parse('http://foo/bar').merge(URI.parse('/1/2/3'))` should result in `#<URI::HTTP http://foo/1/2/3>` and not `#<URI::File file:///1/2/3>`.

If you disagree, please submit an issue to https://github.com/ruby/uri/issues and @akira can decide if the behavior should be changed.

----------------------------------------
Bug #13154: URI::Generic, == operator, normalize!
https://bugs.ruby-lang.org/issues/13154#change-92979

* Author: deman_killer (Dmitry Sk)
* Status: Rejected
* Priority: Normal
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
This two URI means the same:
```
uri1 = URI::parse '/1/2/3'
uri2 = URI::parse 'file:///1/2/3'
```
but `uri1 == uri2` return **false**
it is cause of normalize! implementation that compare scheme this way:
```
if scheme && scheme != scheme.downcase
  set_scheme(self.scheme.downcase)
end
```
But nil scheme actually equivalent to file



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>