まつもと ゆきひろです
たて続けですが。
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!
|