.irbrcに書いておくと便利そうなメソッド。
オブジェクトに対して、使えるメソッドを取得する。methodsメソッドだと、Objectなど祖先クラスのメソッドが全部出るので見にくい。そのクラスのオブジェクトに特有のメソッドだけが出るといいなと思って書いた。
デフォルトだと、nilとの差分。自然数を引数にすると、その階層分だけさかのぼったクラスorモジュールのインスタンスメソッドとの差分を取る。
module Kernel def m(obj=nil) if obj.instance_of?(Fixnum) and obj > 0 k = self.class.ancestors[obj] k ||= Object (methods-k.instance_methods).sort elsif is_a? Module (methods-Module.methods).sort else (methods-obj.methods).sort end end end