sdoc と sdoc-merge

sdoc と sdoc-merge を使うと、RubyGems の RDoc を一括でインクリメンタルに検索する事が出来ます。

$ gem install sdoc
$ cat .gemrc | grep '^rdoc:'
rdoc: --charset=UTF-8 --line-numbers --format=shtml --template=direct
$ for name in $(gem list --no-versions) ; do gem rdoc --overwrite $name ; done
$ sdoc-merge \
    --title "RDoc of Installed RubyGems" \
    --op ~/Dropbox/gemdocs/ \
    --names $(echo $(gem env gemdir)/doc/* | xargs basename | cut -d'-' -f1,-1 | ruby -e 'puts $stdin.read.gsub("\n", ",")') \
    $(gem env gemdir)/doc/*/rdoc/panel/..
$ open ~/Dropbox/gemdocs/index.html

上記は以下のことを行っています。
(途中に登場する汚いシェルコマンドは我慢してください / 良い方法をご存じの方は教えていただけると幸い)

  1. gem で sdoc をインストールしておく
  2. RDoc 生成時に shtml フォーマットと direct テンプレートを指定する(今回は .gemrc に記述しておきました)
  3. インストール済みの gem について RDoc を作り直す
  4. sdoc-merge で RDoc をマージする
  5. マージした RDoc 群を開く

さて、重要な使い心地についてですが、インクリメンタル検索のマッチングの挙動に違和感があるため、自分のニーズ的には今ひとつな感じです。
が、これは慣れれば(理解すれば)解決する問題かもしれません。

そんな感じで、refe や rurema の使用感を理想に、RubyGems のリファレンスを手間無く参照する方法を模索する今日この頃です。