Skip to content
scivola edited this page Mar 17, 2020 · 7 revisions

BitClust は新リファレンスマニュアルの核となるプログラムです。 ドキュメントデータベースからウェブインターフェイス、 執筆支援ツールまで、いろいろ入ってます。 計画に参加するメンバーは必ず入手しておいてください。

入手方法

BitClust は Git レポジトリと Gem パッケージで公開されています。 Git レポジトリからの入手方法については GitRepository を見てください。

tar.gz や zip で提供していたパッケージ版の提供は不定期に行うので、最新のドキュメントが読みたい人は web 版を見るか Gem パッケージ版を使用して自分でドキュメントを生成してください。

インストール

Gem パッケージがリリースされています。

ReFe2 だけ使用したい人は以下のコマンドでインストールすることができます。

$ gem install refe2

るりまのリリース作業など読んだり使ったりするだけでは物足りない人は 以下のコマンドで関連するパッケージを全てインストールすることができます。

$ gem install bitclust-core bitclust-dev refe2

使用方法

Phase2WorkingScheme などが参考になります。

また各コマンドに --help を付けて起動するとオプションの簡単な説明が表示されます。

主要コマンド

bitclust
リファレンスデータベースの更新、表示、検索などを行う。 以下の「bitclust サブコマンド」の項も参照。
refe
BitClust データベースに対応した ReFe (ReFe2)。

bitclust サブコマンド

--capi オプションを付けた場合,C API(refm/capi 以下)を対象とします。付けない場合,ライブラリ(refm/api/src 以下)と言語仕様など(refm/doc 以下)を対象とします。

$HOME/.bitclust/config がある場合は、-dオプションは省略可能です。

ユーザー向け

bitclust setup
設定ファイルの初期化と BitClust データベースの初期化・生成を実行します。 今のところ git コマンドに PATH が通っている必要があります。

bitclust setup
bitclust init
BitClust データベースを初期化する。 setup があるので内部を理解している人以外は使わない。

bitclust -d ./db-1_9_3 init version=1.9.3 encoding=utf-8
bitclust update
BitClust データベースを更新する。

bitclust -d ./db-1_9_3 update --stdlibtree=../doctree/refm/api/src
bitclust -d ./db-1_9_3 --capi update ../doctree/refm/capi/src/*
bitclust list
特定の種類のエントリをリストする。

bitclust -d ./db list --library
bitclust -d ./db list --class
bitclust -d ./db list --method
bitclust -d ./db --capi list --function
bitclust lookup
指定されたエントリの内容を出力する。

bitclust -d ./db lookup --library=_builtin
bitclust -d ./db lookup --class=Object
bitclust -d ./db lookup --method=Object#inspect
bitclust -d ./db lookup --method=Object#inspect --html
bitclust -d ./db --capi lookup --function=rb_ary_new3
bitclust search
refe と同じ(refeの本体)。

bitclust -d ./db search Object#inspect
bitclust -d ./db --capi search rb_ary_new3

開発者向け

bitclust ancestors
クラスの継承階層をRubyとBitClustのDB間で比較する。
bitclust htmlfile
リファレンスの1ファイルを HTML に変換する。データベースの更新なしにhtmlへの変換結果が見られて便利。

bitclust htmlfile --target=Range Range > t.html
bitclust htmlfile ../doctree/refm/api/src/_builtin/Array --target Array > t.html
bitclust htmlfile ../doctree/refm/api/src/net/https.rd > a.html
bitclust htmlfile src/zlib/GzipReader                              #ライブラリGzipReader
bitclust htmlfile src/zlib/GzipReader --target=Zlib::GZipReader    #クラスGzipReader
bitclust htmlfile --force mkmf.rd                                  #ファイルの全体を強制的に出力する
bitclust htmlfile --ruby=1.8.6 --target=Array Array > t.html       #rubyのバージョンを指定
bitclust htmlfile --capi ../doctree/refm/capi/src/array.c.rd --target=rb_ary_new3 # C API では現状 --target 必須
bitclust query
bitclust property
データベースプロパティを操作する。

bitclust -d ./db property --list
bitclust -d ./db property --get encoding
bitclust -d ./db property --set encoding euc-jp
bitclust preproc
プリプロセスだけを行う
bitclust extract
リファレンスファイルに含まれるメソッドエントリをリストする
bitclust classes
システムに存在する全 ruby について、定義されているクラスを表示する
bitclust methods
システムに存在する全 ruby について、定義されているメソッドを表示する。 るりまの *.rd ファイルに書かれてあるメソッドに不足がないかもチェックできる。 -c をつけると不足しているメソッドの ri の内容が表示される。 ライブラリに対して使うときは -r オプションが必須。 [ruby-reference-manual:468], [ruby-reference-manual:558]

bitclust methods Object
bitclust methods -rLIBRARY --ruby=RUBY_VERSION --diff=RDFILE CLASS_NAME
bitclust methods -rstringio --ruby=1.9.3 --diff=StringIO StringIO
ruby-1.9 -S bitclust methods --ruby=1.9.3 --diff=Object Object  -c

パッケージ作成者向け

bitclust chm
Microsoft HTML Workshop用のchm素材を出力する。

bitclust chm -d ./db -o ~/tmp/chm    #-o省略時は ./chm に出力される
このあと、hhc.exe ~/tmp/chm/refm.hhp とするとrefm.chmができる
bitclust statichtml
静的 HTML を出力する。
bitclust info
未実装。info を出力する。

ツール (tools/*.rb)

るりまを書く人用のツールです。gem install bitclust-devでインストールできます。

bc-rdoc
RDoc データベースと BitClust データベースを比較処理。 [ruby-reference-manual:468]
forall-ruby
システムに存在する全 ruby について、同じコマンドラインオプションを付けて実行する
bc-convert
旧リファレンスマニュアルのファイルを BitClustフォーマットに変換します。今はもう使われていません。

実装の詳細