[#42344] [ruby-trunk - Feature #5964][Open] Make Symbols an Alternate Syntax for Strings — Tom Wardrop <tom@...>

23 messages 2012/02/03

[#42443] [ruby-trunk - Bug #5985][Open] miniruby skews "make benchmark" results — Eric Wong <normalperson@...>

21 messages 2012/02/08

[#42444] [ruby-trunk - Bug #5986][Open] Segmentation Fault — Luis Matta <levmatta@...>

16 messages 2012/02/08

[#42471] [ruby-trunk - Feature #5995][Open] calling io_advise_internal() in read_all() — Masaki Matsushita <glass.saga@...>

20 messages 2012/02/10

[#42560] [ruby-trunk - Bug #6011][Open] ruby-1.9.3-p0/lib/webrick/utils.rb:184: [BUG] Segmentation fault — Vit Ondruch <v.ondruch@...>

12 messages 2012/02/13

[#42579] [ruby-trunk - Bug #6012][Open] Proc#source_location also return the column — Roger Pack <rogerpack2005@...>

14 messages 2012/02/14

[#42685] [ruby-trunk - Bug #6036][Open] Test failures in Fedora Rawhide/17 — Bohuslav Kabrda <bkabrda@...>

14 messages 2012/02/16

[#42697] [ruby-trunk - Bug #6040][Open] Transcoding test failure: Big5 to UTF8 not defined (MinGW) — Luis Lavena <luislavena@...>

10 messages 2012/02/16

[#42813] [ruby-trunk - Feature #6065][Open] Allow Bignum marshalling/unmarshalling from C API — Martin Bosslet <Martin.Bosslet@...>

22 messages 2012/02/23

[#42815] [ruby-trunk - Bug #6066][Open] Fix "control may reach end of non-void function" warnings for clang — Eric Hodel <[email protected]>

15 messages 2012/02/23

[#42857] [ruby-trunk - Feature #6074][Open] Allow alias arguments to have a comma — Thomas Sawyer <transfire@...>

20 messages 2012/02/24

[#42891] [ruby-trunk - Feature #6083][Open] Hide a Bignum definition — Koichi Sasada <redmine@...>

23 messages 2012/02/25

[#42906] [ruby-trunk - Bug #6085][Open] Treatment of Wrong Number of Arguments — Marc-Andre Lafortune <ruby-core@...>

14 messages 2012/02/25

[#42949] [ruby-trunk - Bug #6089][Open] Test suite fails with OpenSSL 1.0.1 — Vit Ondruch <v.ondruch@...>

13 messages 2012/02/26

[ruby-core:42795] [ruby-trunk - Bug #6057] URI - Nonsensical Behavior

From: Scott Gonyea <scott@...>
Date: 2012-02-22 02:45:44 UTC
List: ruby-core #42795
Issue #6057 has been updated by Scott Gonyea.


Ah. That's the issue.

1.9.3-p125 :016 > uri = URI("http://google.com/foo/bar/")
 => #<URI::HTTP:0x007fd97a891038 URL:http://google.com/foo/bar/> 
1.9.3-p125 :017 > uri + "baz"
 => #<URI::HTTP:0x007fd97a887ab0 URL:http://google.com/foo/bar/baz> 

If the URI's path itself has a trailing "/" then it will append the new path.

Likewise:

1.9.3-p125 :023 > URI.join("http://google.com/foo/", "bar", "baz")
 => #<URI::HTTP:0x007fd97b8c7308 URL:http://google.com/foo/baz> 
1.9.3-p125 :024 > URI.join("http://google.com/foo/", "bar/", "baz")
 => #<URI::HTTP:0x007fd97b8ba928 URL:http://google.com/foo/bar/baz> 
1.9.3-p125 :025 > 

How very unintuitive :(. I guess the next question would be if `URI.join` actually needs to follow the merge rules to the letter, but I imagine that argument is moot :).

----------------------------------------
Bug #6057: URI - Nonsensical Behavior
https://bugs.ruby-lang.org/issues/6057

Author: Scott Gonyea
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 
ruby -v: 1.9.3-p125


The behavior of Ruby's URI is confusing, to say the least.

URI("http://foo.com/bar") + "baz"
# => #<URI::HTTP:0x710713de URL:http://foo.com/baz> 

URI.join("http://foo.com/baz", "bar")
# => #<URI::HTTP:0x29fd5dc4 URL:http://foo.com/bar>

I could at least understand this behavior being the case if we were adding "/bar" (although it'd still be non-intuitive). That URI throws away its current path makes it a tedious library. Net::HTTP expects it as an input, yet as you interact with URI, you are constantly massaging it into and out of string form.

In my opinion, URI should model the behavior of Pathname.



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

In This Thread