ruby-changes:17994
From: naruse <ko1@a...>
Date: Thu, 2 Dec 2010 13:39:33 +0900 (JST)
Subject: [ruby-changes:17994] Ruby:r30015 (trunk): * lib/uri/common.rb (URI.encode_www_form):
naruse 2010-12-02 13:33:56 +0900 (Thu, 02 Dec 2010) New Revision: 30015 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30015 Log: * lib/uri/common.rb (URI.encode_www_form): split key-value when the value is Array like object. Modified files: trunk/ChangeLog trunk/lib/uri/common.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30014) +++ ChangeLog (revision 30015) @@ -1,3 +1,8 @@ +Thu Dec 2 13:10:42 2010 NARUSE, Yui <naruse@r...> + + * lib/uri/common.rb (URI.encode_www_form): + split key-value when the value is Array like object. + Thu Dec 2 10:39:39 2010 NARUSE, Yui <naruse@r...> * lib/net/http.rb (Net::HTTP#set_form_data): Index: lib/uri/common.rb =================================================================== --- lib/uri/common.rb (revision 30014) +++ lib/uri/common.rb (revision 30015) @@ -798,15 +798,33 @@ # This is an implementation of # http://www.w3.org/TR/html5/forms.html#url-encoded-form-data # + # URI.encode_www_form([["q", "ruby"], ["lang", "en"]]) + # #=> "q=ruby&lang=en" + # URI.encode_www_form("q" => "ruby", "lang" => "en") + # #=> "q=ruby&lang=en" + # URI.encode_www_form("q" => ["ruby", "perl"], "lang" => "en") + # #=> "q=ruby&q=perl&lang=en" + # URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]]) + # #=> "q=ruby&q=perl&lang=en" + # # See URI.encode_www_form_component, URI.decode_www_form def self.encode_www_form(enum) enum.map do |k,v| - str = encode_www_form_component(k) - if v + if v.nil? + encode_www_form_component(k) + elsif v.respond_to?(:to_ary) + v.to_ary.map do |w| + str = encode_www_form_component(k) + unless w.nil? + str << '=' + str << encode_www_form_component(w) + end + end.join('&') + else + str = encode_www_form_component(k) str << '=' str << encode_www_form_component(v) end - str end.join('&') end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/