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/