From: Koji Arai <JCA02266 / nifty.ne.jp>
Subject: [ruby-list:18043] Re: I want rd2info (or rd2texi).
Date: Wed, 27 Oct 1999 22:47:33 +0900

> でも、西本さんが欲しいのは「クラスライブラリ集」の
> ようなものでしょうか?

僕が欲しいのは、メソッドの使い方などの説明をすぐに検索できる環境です。
ruby-info.el もそうですが、別に info に拘ってはいません。

> そういうのって、クラスやメソッドのマニュアルになん
> らかの形式/お約束をドキュメントの著者に押しつける

そうですね。ドキュメント整備は生産性を左右するための大きな問題ですから。
ドキュメントが整備されていないと、せっかくライブラリがあっても自分で作
るという無駄骨になることが多いです。

今のところは、個々のドキュメントの著者が「個々独自のルール」で「ここが
メソッドの説明だ」という目印を入れるところからでいいと思います。 Ruby 
にかかれば、それから index を作成することなど造作もないことですから。
いちいちその著者に合わせてスクリプトを組まなければならない点もあるけど、
そうやっていくうちに de facto standard が出来上がると思うんです。

僕が書いた RD の例を添付しておきます。僕の場合、
Method on `Klass': func
とかが目印です。 Ruby のマニュアルの形式を踏襲しました。

> ruby-info.el は、今でも便利に使わせて頂いてますよ
> (^^)。他のInfoでも類似品が欲しいなぁとよく思います。
> autoconf-info.el とか。

どうも(^o^)
ruby-info.el や perl-info.el をちょっと眺めれば簡単に作れると思います。
実際、GNU Octave (GNU 版 MATLAB とも呼ばれている数値計算用高級言語)
octave-info.el もあります。 perl-info.el の正規表現をちょっといじるだ
けでできました。
=begin
= mylib.rb
== Abstract
自作メソッド群。

== Usage
=== Method on `Object': pr(msg=nil)
display の変種。
* self を表示したあと、改行される。
* msg が指定されると、値を表示するときに "#{msg} = " がつく。
* 戻り値は self である。

=== Function: var(id)
id で指定された変数の値を表示する。

=== Class Method on `Array': rand(n, r=0)
ランダムな数値の要素の配列を生成する。 (length == n)
r は rand の引数。

=== Method on `Array': to_s
要素を , で区切り、 {} で囲んで表示する。

=== Function: vrequire(f)
f を require する。そのとき、ロードした旨を表示する。主にデバッグ用。

=== Class Method on `Time': time(smsg="", emsg="%s seconds")
ブロック内の実行にかかった時間を表示するイテレータ。
* smsg はブロック実行前に表示されるメッセージ。
* emsg はブロック実行終了時に表示されるメッセージのフォーマット。
 * %s は秒数に置き換えられる。

=end

--
Takashi Nishimoto  takashi / oishi.info.waseda.ac.jp
I love ruby, w3m, zsh and Emacs!