cgi.rb Version 2.1.2 1246行目からの
|     unless method.has_key?("METHOD")
|       method["METHOD"] = method
|     end
method["METHOD"]に自分自身(Hash)を代入してしまうのでescapeHTMLの部分でエ
ラーになります。
method["METHOD"] = "post" ですよね。

Hash#has_key?で判定する前にkeyをupcaseしてやらないと
  cgi.form({"method"=>"get"})
の様に小文字で指定した時に意図した通りに動きません。属性は大文字で書くと
ドキュメントに明記するかupcaseで正規化してからhas_key?したほうが良いので
は?

978,979行目の"ATTRILUTE1"は"ATTRIBUTE1"の打ち間違い?

-- 
MoonWolf <moonwolf / moonwolf.com>