インスタンスからメソッドを取り出すには method を使う。
>> class C >> def initialize(n); @n = n; end >> def f; p @n; end >> end => nil >> c = C.new(5) => #<C:0x4afcd30 @n=5> >> m = c.method(:f) => #<Method: C#f> >> m.call 5 => nil
クラス(モジュール)から取り出す場合は instance_method を使う。 これはインスタンスを bind しなければ呼べない。
>> mm = C.instance_method(:f) => #<UnboundMethod: C#f> >> mm.bind(c) => #<Method: C#f> >> mm.bind(c).call 5 => nil