myrurema

myrurema は、Rubyの次世代日本語版リファレンスである 「Rubyリファレンスマニュアル刷新計画」(通称るりま) のリファレンスを 手軽に参照するためのツールです。

インストール

Ruby >= 1.8.xと、Subversionが必要です。

RubyGemsでインストールします。

$ sudo gem install myrurema

するとruremaコマンドが使えるようになります。

$ rurema
(ヘルプが表示される)

使い方

順を追って説明します。

初期化

まず、リファレンスのデータをダウンロードする必要があります。

$ rurema --init

のようにすると、~/.rurema/以下にbitclustとdoctreeをダウンロードし、 新しくデータベースを作成します。 (データベースの作成には数分かかります。)

(別のディレクトリにインストールしたい場合はruremadirオプションを指定します。)

$ rurema --init --ruremadir=/some/where

データベースについて

bitclustは、Rubyの各バージョンに合わせたデータベースを 作成するようになっています。デフォルトでは、お使いのRubyと 同じバージョンのデータベースを生成します。

(別のRubyバージョン用のリファレンスデータベースを作成するには、 rubyverオプションを指定します。)

$ rurema --init --rubyver=1.9.2

ruremadirオプションとrubyverオプションは、以下の全てのコマンドに対して 指定可能です。

リファレンスを引く

ruremaコマンドにメソッド名やクラス名を与えると、リファレンスを表示します。

$ rurema Array#index

クラス名・メソッド名の一部だけでも検索できます。

$ rurema Ar ras
(Array#rassocのリファレンスが表示される)

あるクラスの全てのインスタンスメソッドを表示するには以下のようにします。

$ rurema Array#

(お使いのシェルによっては rurema Array\# とする必要があります)

引数によっては、複数の候補が表示されることもあります。

$ rurema each_w
(1)Enumerable#each_with_index (2)Enumerable#each_with_object
(3)Matrix#each_with_index (4)Prime::PseudoPrimeGenerator#each_with_index
which one? > 

(バージョン0.2.0から、上のようにどれを表示するか聞いてくるように なりました。外部プログラムから呼び出す場合などは、--no-askを付けると 従来通りの表示になります。この場合は、最後に数字を付けることで、 指定した番号の候補を表示できます。(例:$ rurema each_w 3))

ローカルWebサーバの起動

--serverオプションを指定すると、ローカルにWebサーバが起動し、 ブラウザからリファレンスを閲覧することができます。 --browserオプションを指定すると、同時にブラウザでリファレンスのURLを開きます。

$ rurema --server --browser

(デフォルトではRubyのバージョンに合わせたポート番号(例:Ruby 1.8.7なら ポート10187)を使います。ポート番号を変更するには--portオプションを指定します。)

$ rurema --server --port=9999 --browser

データベースの更新

Rubyリファレンス刷新計画では、最新のRubyに完全対応したリファレンスを目指し、 日夜更新が続いています。最新のリファレンスデータに更新するには、 --updateコマンドを使います。

$ rurema --update

リファレンスの書き方

myruremaは、リファレンスを書くための機能も少し備えています。

リファレンスの原稿は、~/.rurema/doctree/refm/api/src/ 以下に置かれています。

プレビュー

--previewオプションを指定すると、特定のメソッドをHTMLファイルにコンパイル します。

rurema --preview _builtin/Array Array#pop

コンパイル結果は/tmp/rurema_preview.htmlに保存されます。 --browserオプションを指定すると、コンパイル結果をブラウザで開きます。

rurema --preview _builtin/Array Array#pop --browser

うまく書けたら、svn diffコマンドで差分を表示し、 るりまのIssue Tracker にチケットを作って、パッチを貼り付けてください。 内容が問題なければ、るりまコミッターがコミットしてくれます。

パッチがたくさん採用されれば、そのうちに、あなたもるりまコミッターの 一員に勧誘されるでしょう。 :-)

ディレクトリの移動

「cd ~/.rurema/doctree/refm/api/src/」と毎回タイプするのは面倒なので、

$ `rurema --preview`

で同じことができるようになっています(zshの場合)。

その他

ライセンスはbitclustのものに準じます。

myruremaはいまのところyharaが個人的に作成しています。

yhara (Yutaka HARA) http://route477.net/ yutaka.hara.gmail.com