Rubyでクラスで使えるメソッドの一覧を取得する方法
特定のRubyクラスで使用可能なメソッドの一覧を取得する方法について、以下に例を示します。
require_relative '../lib/require'
# require 'csv'
# require 'yaml'
def original_methods(target_class="CSV")
eval %(@target_class_methods=#{target_class}.methods)
@target_class_ancestors=['Module','Class','Object','Kernel','BasicObject']
@target_class_ancestors.each {|ancestor|
eval %(@target_class_methods-=#{ancestor}.methods)
}
return @target_class_methods
end
puts original_methods("YAML")
この例では、指定したクラス(ここでは”YAML”)で定義されているメソッドの一覧を取得しています。
注意点
取得されるメソッドの一覧は、そのクラスおよびその親クラスで定義されたメソッドですが、名前が重複している場合には問題が発生する可能性があります。そのため、完全に正確とは言えない点に留意してください。
この方法を取り急ぎ使用する際には、その制限を理解した上でご利用ください。