Ruby CGIメソッド

以下はCGIクラスのメソッド一覧です:

番号メソッド説明
1CGI::new([ level="query"])
CGIオブジェクトを作成します。queryは以下の値を指定できます:
  • query:HTML生成出力はありません

  • html3: HTML3.2

  • html4: HTML4.0 Strict

  • html4Tr: HTML4.0 Transitional

  • html4Fr: HTML4.0 Frameset

2CGI::escape( str)
URLエンコーディングを使用して文字列をエスケープします
3CGI::unescape( str)
escape()でエンコードされた文字列をデコードします。
4CGI::escapeHTML( str)
HTML特殊文字をエンコードします。これには & < > が含まれます。
5CGI::unescapeHTML( str)
HTML特殊文字をデコードします。これには & < > が含まれます。
6CGI::escapeElement( str[, element...])
指定されたHTML要素内でHTML特殊文字をエンコードします。
7CGI::unescapeElement( str, element[, element...])
指定されたHTML要素内でHTML特殊文字をデコードします。
8CGI::parse( query)
クエリ文字列を解析し、ハッシュのキー=>値ペアを返します。
9CGI::pretty( string[, leader=" "])
整ったHTML形式を返します。指定された場合leader、各行の先頭に書き込まれます。leaderデフォルト値はスペース2つです。
10CGI::rfc1123_date( time)
RFC-1123に従って時刻をフォーマットします(例:Tue, 2 Jun 2008 00:00:00 GMT)。

CGI インスタンスメソッド

次の例では、CGI::newのオブジェクトをc変数に代入します。メソッド一覧は以下の通りです:

番号メソッド説明
1c[ name]
対応するフィールド名のname値を含む配列を返します。
2c.checkbox( name[, value[, check=false]])
c.checkbox( options)

チェックボックスフィールドを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
3c.checkbox_group( name, value...)
c.checkbox_group( options)

>チェックボックスグループを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
4c.file_field( name[, size=20[, max]])
c.file_field( options)

fileフィールドを定義するHTML文字列を返します。
5c.form([ method="post"[, url]]) { ...}
c.form( options)

フォーム(form)を定義するHTML文字列を返します。コードブロックが指定された場合は、フォームの内容として出力されます。タグの属性はハッシュとして渡すことができます。
6c.cookies
CGI::Cookie オブジェクトを返します。cookie内のキーと値のペアが含まれます。
7c.header([ header])
CGIヘッダー情報を返します。headerパラメータがハッシュ値の場合、そのキーと値のペアを使用してヘッダー情報を作成します。
8c.hidden( name[, value])
c.hidden( options)

隠しフィールドを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
9c.image_button( url[, name[, alt]])
c.image_button( options)

画像ボタンを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
10c.keys
フォームのフィールド名を含む配列を返します。
11c.key?( name)
c.has_key?( name)
c.include?( name)

フォームに指定されたフィールド名が含まれている場合は true を返します。
12c.multipart_form([ url[, encode]]) { ...}
c.multipart_form( options) { ...}

multipartフォームを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
13c.out([ header]) { ...}
HTMLを生成して出力します。ブロックの出力によって生成された文字列を使用して、ページの本文を作成します。
14c.params
フォームのフィールド名と値を含むハッシュを返します。
15c.params= hash
フィールド名と値を設定します。
16c.password_field( name[, value[, size=40[, max]]])
c.password_field( options)

passwordフィールドを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
17c.popup_menu( name, value...)
c.popup_menu( options)
c.scrolling_list( name, value...)
c.scrolling_list( options)

ポップアップメニューを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
18c.radio_button( name[, value[, checked=false]])
c.radio_button( options)

radioフィールドを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
19c.radio_group( name, value...)
c.radio_group( options)

radioボタングループを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
20c.reset( name[, value])
c.reset( options)

resetボタンを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
21c.text_field( name[, value[, size=40[, max]]])
c.text_field( options)

textフィールドを定義するHTML文字列を返します。タグの属性はハッシュとして渡すことができます。
22c.textarea( name[, cols=70[, rows=10]]) { ...}
c.textarea( options) { ...}

textareaフィールドを定義するHTML文字列を返します。ブロックが指定された場合、コードブロックが出力する文字列が textarea の内容になります。タグの属性はハッシュとして渡すことができます。

HTML生成メソッド

CGIインスタンス内で対応するHTMLタグ名を使用してHTMLタグを作成できます。例は以下の通りです:

例

#!/usr/bin/ruby require "cgi" cgi = CGI.new("html4") cgi.out{ cgi.html{ cgi.head{ "\n"+cgi.title{"This Is a Test"} } + cgi.body{ "\n"+ cgi.form{"\n"+ cgi.hr + cgi.h1 { "A Form: " } + "\n"+ cgi.textarea("get_text") +"\n"+ cgi.br + cgi.submit } } } }

CGI オブジェクト属性

CGIインスタンス内で以下の属性を使用できます:

属性戻り値
accept受け入れ可能なMIMEタイプ
accept_charset受け入れ可能な文字セット
accept_encoding受け入れ可能なエンコーディング
accept_language受け入れ可能な言語
auth_type受け入れ可能なタイプ
raw_cookieCookieデータ(元の文字列)
content_lengthコンテンツ長(Content length)
content_typeコンテンツタイプ(Content type)
Fromクライアントのe-mailアドレス
gateway_interfaceCGIバージョン
path_infoパス
path_translated変換後のパス
Query_stringクエリ文字列
referer以前にアクセスしたURL
remote_addrクライアントのホストアドレス(IP)
remote_hostクライアントのホスト名
remote_identクライアント名
remote_user認証済みユーザー
request_methodリクエストメソッド(GET, POST など)
script_nameパラメータ名
server_nameサーバー名
server_portサーバーポート
server_protocolサーバープロトコル
server_softwareサーバーソフトウェア
user_agentユーザーエージェント(User agent)
その他の拡張