クライアントがフォームへ入力した値を表すクラスです。multipart/form-data なデータを表すのにも使われます。
WEBrick::HTTPRequest#query はリクエストのクエリーあるいはクライアントがフォームへ入力した値を保持した Hash を返しますが、その Hash のキーと値のうち値は FormData クラスのインスタンスになります。同じ名前のフィールドが複数ある場合、WEBrick::HTTPUtils::FormData#list や WEBrick::HTTPUtils::FormData#each_data によりそれぞれの値を取り出すことができます。
通常のフォームデータ(application/x-www-form-urlencoded)は unescape されています。ただし multipart/form-data なフォームデータはユーザが content-transfer-encoding ヘッダを見て適切に処理する必要があります。
new(*args) -> WEBrick::HTTPUtils::FormData[permalink][rdoc]WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
self << str -> self[permalink][rdoc]WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
self[header] -> String | nil[permalink][rdoc]自身が multipart/form-data なデータの場合に、header で指定されたヘッダの値を文字列で返します。無ければ nil を返します。
例:
require "webrick/cgi"
class MyCGI < WEBrick::CGI
  def do_GET(req, res)
    p req.query['q']['content-type']   #=> "plain/text"
  end
end
MyCGI.new.start()
append_data(data) -> self[permalink][rdoc]WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
each_data {|s| ... }[permalink][rdoc]自身が表す各フォームデータを引数として、与えられたブロックを実行します。
例:
require "webrick/cgi"
class MyCGI < WEBrick::CGI
  def do_GET(req, res)
    req.query['q'].each_data{|s|
      p s
    }
    #=> "val1"
        "val2"
        "val3"
  end
end
MyCGI.new.start()
filename -> String | nil[permalink][rdoc]filename=(value)フォームデータの filename 属性を文字列で表すアクセサです。
例:
require "webrick/cgi"
class MyCGI < WEBrick::CGI
  def do_GET(req, res)
    p req.query['q'].filename   #=> "my_file.txt"
  end
end
MyCGI.new.start()
list -> Array[permalink][rdoc]to_ary -> Array自身が表す各フォームデータを収納した配列を生成して返します。
例:
require "webrick/cgi"
class MyCGI < WEBrick::CGI
  def do_GET(req, res)
    p req.query['q'].list    #=> ["val1", "val2", "val3"]
  end
end
MyCGI.new.start()
name -> String | nil[permalink][rdoc]name=(value)フォームデータの name 属性を文字列で表すアクセサです。
例:
require "webrick/cgi"
class MyCGI < WEBrick::CGI
  def do_GET(req, res)
    p req.query['q'].name   #=> "q"
  end
end
MyCGI.new.start()
to_s -> String[permalink][rdoc]自身が表すフォームデータのうちのひとつを文字列として返します。