要約
クライアントがフォームへ入力した値を表すクラスです。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 ヘッダを見て適切に処理する必要があります。
リンク
目次
継承しているメソッド
- Stringから継承しているメソッド
-
- %
- *
- +
- +@
- -@
- <=>
- ==
- ===
- =~
- []=
- ascii_only?
- b
- byteindex
- byterindex
- bytes
- bytesize
- byteslice
- bytesplice
- capitalize
- capitalize!
- casecmp
- casecmp?
- center
- chars
- chomp
- chomp!
- chop
- chop!
- chr
- clear
- codepoints
- concat
- count
- crypt
- dedup
- delete
- delete!
- delete_prefix
- delete_prefix!
- delete_suffix
- delete_suffix!
- downcase
- downcase!
- dump
- each_byte
- each_char
- each_codepoint
- each_grapheme_cluster
- each_line
- empty?
- encode
- encode!
- encoding
- end_with?
- eql?
- force_encoding
- getbyte
- grapheme_clusters
- gsub
- gsub!
- hash
- hex
- include?
- index
- insert
- inspect
- intern
- length
- lines
- ljust
- lstrip
- lstrip!
- match
- match?
- next
- next!
- oct
- ord
- partition
- prepend
- replace
- reverse
- reverse!
- rindex
- rjust
- rpartition
- rstrip
- rstrip!
- scan
- scrub
- scrub!
- setbyte
- size
- slice
- slice!
- split
- squeeze
- squeeze!
- start_with?
- strip
- strip!
- sub
- sub!
- succ
- succ!
- sum
- swapcase
- swapcase!
- to_c
- to_f
- to_i
- to_r
- to_str
- to_sym
- tr
- tr!
- tr_s
- tr_s!
- undump
- unicode_normalize
- unicode_normalize!
- unicode_normalized?
- unpack
- unpack1
- upcase
- upcase!
- upto
- valid_encoding?
- Comparableから継承しているメソッド
特異メソッド
new(*args) -> WEBrick::HTTPUtils::FormData
[permalink][rdoc][edit]-
WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
インスタンスメソッド
self << str -> self
[permalink][rdoc][edit]-
WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
self[header] -> String | nil
[permalink][rdoc][edit]-
自身が multipart/form-data なデータの場合に、header で指定されたヘッダの値を文字列で返します。無ければ nil を返します。
- [PARAM] header:
- ヘッダ名を文字列で指定します。大文字と小文字を区別しません。
例:
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][edit]-
WEBrick::HTTPUtils の内部で使われます。ユーザがこのメソッドを直接呼ぶことはありません。
each_data {|s| ... }
[permalink][rdoc][edit]-
自身が表す各フォームデータを引数として、与えられたブロックを実行します。
例:
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][edit]filename=(value)
-
フォームデータの filename 属性を文字列で表すアクセサです。
- [PARAM] 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][edit]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][edit]name=(value)
-
フォームデータの name 属性を文字列で表すアクセサです。
- [PARAM] 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][edit]-
自身が表すフォームデータのうちのひとつを文字列として返します。