aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-05-19 02:34:47 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-05-19 02:34:47 +0000
commit8c7310e71398b3bf76c62ecd32db2340733a4769 (patch)
tree6cabc4566e95bea8010d1d81e656aa6a56f5a12a
parent1443776cc9786e06764b457e14a0ed6a831b0a70 (diff)
downloadruby-8c7310e71398b3bf76c62ecd32db2340733a4769.tar.gz
* lib/uri/rfc2396_parser.rb (initialize_pattern):
URI::Generic.build should accept port as a string. pattern[:PORT] is not defined for long. by Dave Slutzkin <daveslutzkin@fastmail.fm> https://github.com/ruby/ruby/pull/804 fix GH-804 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--lib/uri/rfc2396_parser.rb2
-rw-r--r--test/uri/test_generic.rb4
3 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8812f9a231..d25205319c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue May 19 11:22:28 2015 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * lib/uri/rfc2396_parser.rb (initialize_pattern):
+ URI::Generic.build should accept port as a string.
+ pattern[:PORT] is not defined for long.
+ by Dave Slutzkin <daveslutzkin@fastmail.fm>
+ https://github.com/ruby/ruby/pull/804 fix GH-804
+
Tue May 19 11:18:46 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/ruby.h (rb_data_typed_object_alloc),
diff --git a/lib/uri/rfc2396_parser.rb b/lib/uri/rfc2396_parser.rb
index c192f65ec1..a8af37502a 100644
--- a/lib/uri/rfc2396_parser.rb
+++ b/lib/uri/rfc2396_parser.rb
@@ -401,7 +401,7 @@ module URI
# host = hostname | IPv4address | IPv6reference (RFC 2732)
ret[:HOST] = host = "(?:#{hostname}|#{ipv4addr}|#{ipv6ref})"
# port = *digit
- port = '\d*'
+ ret[:PORT] = port = '\d*'
# hostport = host [ ":" port ]
ret[:HOSTPORT] = hostport = "#{host}(?::#{port})?"
diff --git a/test/uri/test_generic.rb b/test/uri/test_generic.rb
index 37605d5de5..c0597b91dc 100644
--- a/test/uri/test_generic.rb
+++ b/test/uri/test_generic.rb
@@ -761,6 +761,10 @@ class URI::TestGeneric < Test::Unit::TestCase
u = URI::Generic.build(['http', nil, 'example.com', 80, nil, '/foo', nil, nil, nil])
assert_equal('http://example.com:80/foo', u.to_s)
+ u = URI::Generic.build(:port => "5432")
+ assert_equal(":5432", u.to_s)
+ assert_equal(5432, u.port)
+
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)