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

ruby-changes:10593

From: knu <ko1@a...>
Date: Mon, 9 Feb 2009 12:15:36 +0900 (JST)
Subject: [ruby-changes:10593] Ruby:r22150 (ruby_1_8): r22139@crimson: knu | 2009-02-08 21:52:57 +0900

knu	2009-02-09 12:15:27 +0900 (Mon, 09 Feb 2009)

  New Revision: 22150

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

  Log:
     r22139@crimson:  knu | 2009-02-08 21:52:57 +0900
     (OpenURI.open_loop): prohibit multiple proxy options. (r9339)

  Modified directories:
    branches/ruby_1_8/
  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/lib/open-uri.rb

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 22149)
+++ ruby_1_8/ChangeLog	(revision 22150)
@@ -3,6 +3,7 @@
 	* lib/open-uri.rb: add :read_timeout option.
 	  [ruby-core:4848] (r9166)
 	  (:proxy_http_basic_authentication): new option. (r9336)
+	  (OpenURI.open_loop): prohibit multiple proxy options. (r9339)
 
 Mon Feb  9 01:21:16 2009  Tanaka Akira  <akr@f...>
 
Index: ruby_1_8/lib/open-uri.rb
===================================================================
--- ruby_1_8/lib/open-uri.rb	(revision 22149)
+++ ruby_1_8/lib/open-uri.rb	(revision 22150)
@@ -144,17 +144,29 @@
   end
 
   def OpenURI.open_loop(uri, options) # :nodoc:
-    if options.include? :proxy_http_basic_authentication
-      opt_proxy, proxy_user, proxy_pass = options[:proxy_http_basic_authentication]
+    proxy_opts = []
+    proxy_opts << :proxy_http_basic_authentication if options.include? :proxy_http_basic_authentication
+    proxy_opts << :proxy if options.include? :proxy
+    proxy_opts.compact!
+    if 1 < proxy_opts.length
+      raise ArgumentError, "multiple proxy options specified"
+    end
+    case proxy_opts.first
+    when :proxy_http_basic_authentication
+      opt_proxy, proxy_user, proxy_pass = options.fetch(:proxy_http_basic_authentication)
       proxy_user = proxy_user.to_str
       proxy_pass = proxy_pass.to_str
       if opt_proxy == true
         raise ArgumentError.new("Invalid authenticated proxy option: #{options[:proxy_http_basic_authentication].inspect}")
       end
-    else
-      opt_proxy = options.fetch(:proxy, true)
+    when :proxy
+      opt_proxy = options.fetch(:proxy)
       proxy_user = nil
       proxy_pass = nil
+    when nil
+      opt_proxy = true
+      proxy_user = nil
+      proxy_pass = nil
     end
     case opt_proxy
     when true
@@ -498,7 +510,7 @@
     #  If nil is given for the proxy URI, this option is just ignored.
     #
     #  If :proxy and :proxy_http_basic_authentication is specified, 
-    #  :proxy_http_basic_authentication is preferred.
+    #  ArgumentError is raised.
     #
     # [:http_basic_authentication]
     #  Synopsis:

Property changes on: ruby_1_8
___________________________________________________________________
Name: svk:merge
   - 050cfa88-b445-4b2e-b226-957b86f2c464:/local/ruby/1.8:22138
b2dd03c8-39d4-4d8f-98ff-823fe69b080e:/trunk:5286
   + 050cfa88-b445-4b2e-b226-957b86f2c464:/local/ruby/1.8:22139
b2dd03c8-39d4-4d8f-98ff-823fe69b080e:/trunk:5286


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

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