成瀬です。

1.9 にて webrick に String#each 削除の影響がでています。

raw に Array が来てしまったり、io に String が来てしまうケースが
あること自体がそもそもの問題な気はしますけれど。

なお参考までに、Content-Disposition がある時に raw が Array になります。

Index: lib/webrick/httputils.rb
===================================================================
RCS file: /src/ruby/lib/webrick/httputils.rb,v
retrieving revision 1.14
diff -u -r1.14 httputils.rb
--- lib/webrick/httputils.rb    2 Nov 2006 00:21:27 -0000       1.14
+++ lib/webrick/httputils.rb    23 Nov 2006 08:18:40 -0000
@@ -127,7 +127,7 @@
     def parse_header(raw)
       header = Hash.new([].freeze)
       field = nil
-      raw.lines.each{|line|
+      (raw.class.method_defined?(:lines) ? raw.lines : raw).each{|line|
         case line
         when /^([A-Za-z0-9!\#$%&'*+\-.^_`|~]+):\s*(.*?)\s*\z/om
           field, value = $1, $2
@@ -317,7 +317,7 @@
       form_data = Hash.new
       return form_data unless io
       data = nil
-      io.each{|line|
+      (io.class.method_defined?(:lines) ? io.lines : io).each{|line|
         if boundary_regexp =~ line
           if data
             data.chop!

-- 
NARUSE, Yui  <naruse / airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA