diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-19 02:34:47 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-19 02:34:47 +0000 |
commit | 8c7310e71398b3bf76c62ecd32db2340733a4769 (patch) | |
tree | 6cabc4566e95bea8010d1d81e656aa6a56f5a12a | |
parent | 1443776cc9786e06764b457e14a0ed6a831b0a70 (diff) |
* 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 <[email protected]>
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-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/uri/rfc2396_parser.rb | 2 | ||||
-rw-r--r-- | test/uri/test_generic.rb | 4 |
3 files changed, 13 insertions, 1 deletions
@@ -1,3 +1,11 @@ +Tue May 19 11:22:28 2015 NARUSE, Yui <[email protected]> + + * 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 <[email protected]> + https://github.com/ruby/ruby/pull/804 fix GH-804 + Tue May 19 11:18:46 2015 Nobuyoshi Nakada <[email protected]> * 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) |