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