[前][次][番号順一覧][スレッド一覧]

ruby-changes:22165

From: naruse <ko1@a...>
Date: Thu, 5 Jan 2012 11:57:33 +0900 (JST)
Subject: [ruby-changes:22165] naruse:r34214 (trunk): * lib/uri/common.rb (URI::Parser#initialize_regexp):

naruse	2012-01-05 11:57:21 +0900 (Thu, 05 Jan 2012)

  New Revision: 34214

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34214

  Log:
    * lib/uri/common.rb (URI::Parser#initialize_regexp):
      use \A \z instead of ^ $. [Bug #5843]

  Modified files:
    trunk/ChangeLog
    trunk/lib/uri/common.rb
    trunk/test/uri/test_generic.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34213)
+++ ChangeLog	(revision 34214)
@@ -1,3 +1,8 @@
+Thu Jan  5 11:47:54 2012  NARUSE, Yui  <naruse@r...>
+
+	* lib/uri/common.rb (URI::Parser#initialize_regexp):
+	  use \A \z instead of ^ $. [Bug #5843]
+
 Wed Jan  4 17:55:53 2012  Ayumu AIZAWA  <ayumu.aizawa@g...>
 
 	* array.c (rb_ary_sample): add example for Array#sample
Index: lib/uri/common.rb
===================================================================
--- lib/uri/common.rb	(revision 34213)
+++ lib/uri/common.rb	(revision 34214)
@@ -514,16 +514,16 @@
       ret[:UNSAFE]  = Regexp.new("[^#{pattern[:UNRESERVED]}#{pattern[:RESERVED]}]")
 
       # for Generic#initialize
-      ret[:SCHEME]   = Regexp.new("^#{pattern[:SCHEME]}$")
-      ret[:USERINFO] = Regexp.new("^#{pattern[:USERINFO]}$")
-      ret[:HOST]     = Regexp.new("^#{pattern[:HOST]}$")
-      ret[:PORT]     = Regexp.new("^#{pattern[:PORT]}$")
-      ret[:OPAQUE]   = Regexp.new("^#{pattern[:OPAQUE_PART]}$")
-      ret[:REGISTRY] = Regexp.new("^#{pattern[:REG_NAME]}$")
-      ret[:ABS_PATH] = Regexp.new("^#{pattern[:ABS_PATH]}$")
-      ret[:REL_PATH] = Regexp.new("^#{pattern[:REL_PATH]}$")
-      ret[:QUERY]    = Regexp.new("^#{pattern[:QUERY]}$")
-      ret[:FRAGMENT] = Regexp.new("^#{pattern[:FRAGMENT]}$")
+      ret[:SCHEME]   = Regexp.new("\\A#{pattern[:SCHEME]}\\z")
+      ret[:USERINFO] = Regexp.new("\\A#{pattern[:USERINFO]}\\z")
+      ret[:HOST]     = Regexp.new("\\A#{pattern[:HOST]}\\z")
+      ret[:PORT]     = Regexp.new("\\A#{pattern[:PORT]}\\z")
+      ret[:OPAQUE]   = Regexp.new("\\A#{pattern[:OPAQUE_PART]}\\z")
+      ret[:REGISTRY] = Regexp.new("\\A#{pattern[:REG_NAME]}\\z")
+      ret[:ABS_PATH] = Regexp.new("\\A#{pattern[:ABS_PATH]}\\z")
+      ret[:REL_PATH] = Regexp.new("\\A#{pattern[:REL_PATH]}\\z")
+      ret[:QUERY]    = Regexp.new("\\A#{pattern[:QUERY]}\\z")
+      ret[:FRAGMENT] = Regexp.new("\\A#{pattern[:FRAGMENT]}\\z")
 
       ret
     end
Index: test/uri/test_generic.rb
===================================================================
--- test/uri/test_generic.rb	(revision 34213)
+++ test/uri/test_generic.rb	(revision 34214)
@@ -692,6 +692,7 @@
 
     uri = URI.parse('http://example.com')
     assert_raise(URI::InvalidURIError) { uri.password = 'bar' }
+    assert_raise(URI::InvalidComponentError) { uri.query = "foo\nbar" }
     uri.userinfo = 'foo:bar'
     assert_equal('http://foo:bar@e...', uri.to_s)
     assert_raise(URI::InvalidURIError) { uri.registry = 'bar' }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]