ruby-reference-manual:108
From: Minero Aoki <aamine@l...>
Date: Wed, 11 Oct 2006 23:52:24 +0900 (JST)
Subject: [ruby-reference-manual:108] 記述フォーマット (rev.2)
青木です。 クラスリファレンスの記述フォーマットに関するドキュメントを送ります。 同じものが Subversion レポジトリの refm/api/FORMAT に入れてある ので、最新版が必要なときはそっちを見てください。 -- 青木峰郎 = 記述フォーマット ファイルのフォーマットは RD ベースです。 ただし、厳密にパースできるように制限を増やしてあります。 == ファイルの構造 新リファレンスではライブラリごとにファイルを分割します。 各ファイル (== ライブラリの記述) は以下のような構造をしています。 require ライブラリ名 require ライブラリ名 : : <ライブラリのドキュメント> <レベル1ブロック> <レベル1ブロック> : : ファイル冒頭では、「このライブラリを require したとき、同時に 使えると期待していいライブラリ」を記述します。文法は 「require ライブラリ名」です。この require 行はいくつ書いても 構いません (ゼロ個でも構いません)。 続いてライブラリ自体のドキュメントを書きます。これは省略可能です。 最後に、以下に述べる「レベル 1 ブロック」を任意の回数記述します。 「レベル 1 ブロック」はクラスやモジュールの記述です。 == レベル 1 ブロック レベル 1 ブロックはクラスやモジュールを記述します。 レベル 1 ブロックは以下のような構造をしています。 = class クラス名 < スーパークラス名 include モジュール名 include モジュール名 : : <クラスのドキュメント> <レベル2ブロック> <レベル2ブロック> : : レベル 1 ヘッダ (「=」) には以下の種類があります。 * class クラス * module モジュール * object オブジェクト (ほぼ ARGF と ENV 専用) * reopen 既存クラスへのメソッドの追加 * redefine 既存メソッドの再定義 (jcode, mathn など) ヘッダの直後には、そのクラスやモジュールが include している モジュールを「include モジュール名」で記述します。include は いくつ書いても構いません。 続いてクラス自身のドキュメントを書きます。省略可能です。 クラスのドキュメントでヘッドラインを使いたいときは レベル 3 (===) 以上にしてください。 最後に「レベル 2 ブロック」を任意の回数だけ書きます。 「レベル 2 ブロック」はメソッドのグループです。 == レベル 2 ブロック レベル 2 ブロックは特定の種類のメソッドのグループを表現します。 レベル 2 ブロックは以下のような構造をしています。 == Singleton Methods <メソッドエントリ> <メソッドエントリ> : : レベル 2 ヘッダ (「==」) には以下の種類があります。 : Singleton Methods または Class Methods public な特異メソッド : Private Singleton Methods private な特異メソッド : Protected Singleton Methods protected な特異メソッド : Instance Methods public なインスタンスメソッド : Private Instance Methods private なインスタンスメソッド : Protected Instance Methods protected なインスタンスメソッド : Module Functions モジュール関数 : Constants 定数 : Special Variables 特殊定数 (Kernel 限定) == メソッドエントリの文法 メソッドエントリは以下のような構造です。 ---- メソッド名 ---- メソッド名(引数) ---- メソッド名(引数) { .... } <メソッドのドキュメント> 引数の形式がいくつもある場合や、alias があるときは、上記の ように「--- メソッド名」の行を連続して書いてください。 メソッドシグネチャは Ruby での def と同じように記述します。 旧リファレンスマニュアルでは「self + other」や 「self[key] = value」のような書きかたも許容されていましたが、 新マニュアルでは認められません。 メソッドのドキュメント内でヘッドラインを使いたいときは レベル 3 (===) 以上を使ってください。 == 通常のテキストの文法 ライブラリのドキュメント、クラスのドキュメント、メソッドの ドキュメントでは以下に述べる共通の文法を使います。 === 段落 通常の段落はインデントなしで書きます。 === リスト インデントするとリストになります。 [例] テキスト〜 p Object.new 特殊な事情があってインデントが使えない場合は 以下の記法を使ってください。 //emlist{ リスト //} ※ 「//emlist{」と「//}」はインデントしない === 箇条書き 箇条書きはインデント + '*' です。インデントなしは不可。 [例] テキスト〜 * 項目 1 * 項目 2 * 項目 3 === 番号付きの箇条書き 番号付きの箇条書きはインデント + (1), (2), ... です。 インデントなしは不可。 [例] テキスト〜 (1) 項目 1 (2) 項目 2 (3) 項目 3 === ハイパーリンク 以下のようなハイパーリンク記法が使えます。 * [[c:String]] クラス String にリンク * [[c:File::Stat]] クラス File::Stat にリンク * [[m:String.new]] メソッド String.new にリンク * [[m:String#dump]] メソッド String#dump にリンク * [[m:String#[] ]] メソッド String#[] にリンク (空白必須) * [[m:File::SEPARATOR]] 定数 File::SEPARATOR にリンク * [[m:$~]] 特殊変数 $~ にリンク * [[lib:jcode]] ライブラリ jcode にリンク * [[man:tr(1)]] man ページ tr(1) にリンク * [[url:http://i.loveruby.net]] URL http://i.loveruby.net にリンク === 既存リファレンスから削除された機能 RD の (({...})), ((|...|)) はサポートしません。 bc-convert.rb を使うと自動的にすべて削除されます。 脚注とコメントも廃止されました。コメントを書きたい場合は プリプロセッサコメント「#@# ...」を使ってください。 == プリプロセッサ 各ファイルは事前に専用プリプロセッサで処理されます。プリプロセッサ の命令はすべて行単位で、すべて「#@」で始まります。 === #@# 「#@#」の行はコメントです。 === #@include 「#@include(ファイル名)」で他のファイルをテキスト的に結合できます。 「ファイル名」は #@include の書かれているファイルからの相対パスを 探します。 [例] #@include(HTTP) #@include(HTTPHeader) #@include(HTTPRequest) #@include(HTTPResponse) === #@since 「#@since バージョン 〜 #@end」でバージョン依存コンパイルができます。 例えば Ruby 1.8.0 以降にのみ適用される文章は以下のように記述します。 [例] #@since 1.8.0 Ruby 1.8 以降では 〜〜 #@end #@since 命令は #@if 命令の特殊形です。 === #@if 「#@if(条件) 〜 #@else 〜 #@end 」でバージョン依存コンパイルが できます。例えば Ruby 1.8.0 以降にのみ適用される文章は以下 のように記述します。 [例] #@if (version >= "1.8.0") Ruby 1.8 以降では 〜〜 #@end いまのところ条件式の評価はテキトーなので、比較式 (>= とか == とか) しか使えません。他の式が使いたいときは ML で相談してください。 -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/