From: Yukihiro Matsumoto Date: 2006-11-24T16:01:33+09:00 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" 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 + + * 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 * 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!