Ruby リファレンスマニュアル参照コマンド BitClust の検索で include されているモジュールを出力するパッチ

bitclust lookup で refe のようにリファレンスマニュアルエントリを引くことができるが、クラスエントリを引いたときに、 include されているモジュールが表示されない。だから表示するようなパッチを書いた。このパッチを当てると、 refe2x コマンド でもその恩恵を受けることができる。

--- bitclust.rb	2008/01/02 07:11:28	1.1
+++ bitclust.rb	2008/01/02 07:14:18
@@ -362,6 +362,7 @@
            type: class
            name: <%= entry.name %>
            library: <%= entry.library.name %>
+           included_modules: <%= entry.included.map {|m| m.name}.sort.join(', ') %>
            singleton_methods: <%= entry.singleton_methods.map {|m| m.name }.sort.join(', ') %>
            instance_methods: <%= entry.instance_methods.map {|m| m.name }.sort.join(', ') %>
            constants: <%= entry.constants.map {|m| m.name }.sort.join(', ') %>
@@ -374,6 +375,7 @@
            <dt>type</dt><dd>class</dd>
            <dt>name</dt><dd><%= entry.name %></dd>
            <dt>library</dt><dd><%= entry.library.name %></dd>
+           <dt>included_modules</dt><dd><%= entry.included.map {|m| m.name }.sort.join(', ') %>
            <dt>singleton_methods</dt><dd><%= entry.singleton_methods.map {|m| m.name }.sort.join(', ') %></dd>
            <dt>instance_methods</dt><dd><%= entry.instance_methods.map {|m| m.name }.sort.join(', ') %></dd>
            </dl>

このパッチを適用すると「 included_modules: Enumerable 」と出るのがわかる。

$ bitclust -d ~/compile/ruby-refm-1.9.0-dynamic/db-1_9_0/ lookup --class Range
type: class
name: Range
library: _builtin
included_modules: Enumerable
singleton_methods: new
instance_methods: ==, ===, begin, each, end, eql?, equal?, exclude_end?, hash, step
constants: 
special_variables: 

範囲オブジェクトのクラス。範囲オブジェクトは範囲演算子 .. または
... によって生成されます。.. 演算子によって生成された範囲
オブジェクトは終端を含み、... 演算子によって生成された範囲オブジェ
クトは終端を含みません。
(略)