logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

[ruby-dev:29943] Re: webrick and String#each: msg#00216

Subject: [ruby-dev:29943] Re: webrick and String#each
まつもと ゆきひろです

たて続けですが。

In message "Re: [ruby-dev:29931] webrick and String#each"
    on Fri, 24 Nov 2006 11:33:22 +0900, "NARUSE, Yui" <naruse@xxxxxxxxxxx> 
writes:

|1.9 にて webrick に String#each 削除の影響がでています。
|
|raw に Array が来てしまったり、io に String が来てしまうケースが
|あること自体がそもそもの問題な気はしますけれど。
|
|なお参考までに、Content-Disposition がある時に raw が Array になります。

私はWebrickに強くないんで確証はないんですが、以下のコードで
問題は解決しますか?

diff --git a/ChangeLog b/ChangeLog
index 65468be..13d051c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Nov 24 15:57:25 2006  Yukihiro Matsumoto  <matz@xxxxxxxxxxxxx>
+
+       * lib/webrick/httputils.rb (WEBrick::HTTPUtils::FormData::<<):
+         HTTPUtils::parse_header() takes a string.  [ruby-dev:29931]
+
+       * lib/webrick/httputils.rb (WEBrick::HTTPUtils::parse_form_data):
+         String does no longer have each method.
+
 Thu Nov 23 10:38:40 2006  Yukihiro Matsumoto  <matz@xxxxxxxxxxxxx>
 
        * eval.c (rb_mod_define_method): set implicit visibility only when
diff --git a/lib/webrick/httputils.rb b/lib/webrick/httputils.rb
index 38a42b9..c853c96 100644
--- a/lib/webrick/httputils.rb
+++ b/lib/webrick/httputils.rb
@@ -244,7 +244,7 @@ module WEBrick
         if @header
           super
         elsif str == CRLF
-          @header = HTTPUtils::parse_header(@raw_header)
+          @header = HTTPUtils::parse_header(@raw_header.join)
           if cd = self['content-disposition']
             if /\s+name="(.*?)"/ =~ cd then @name = $1 end
             if /\s+filename="(.*?)"/ =~ cd then @filename = $1 end
@@ -317,7 +317,7 @@ module WEBrick
       form_data = Hash.new
       return form_data unless io
       data = nil
-      io.each{|line|
+      io.lines.each{|line|
         if boundary_regexp =~ line
           if data
             data.chop!




<Prev in Thread] Current Thread [Next in Thread>