間接的にメソッドを呼び出す
def foo(x) p ["foo", x] end send( :foo, "send") #=> ["foo", "send"] v = "foo" send( :"#{v}", "send-v") #=> ["foo", "send-v"] m = method( :foo) m.call("method") #=> ["foo", "method"] p = lambda {|x| foo(x)} p.call("proc") #=> ["foo", "proc"] class Bar def bar(x) p ["bar", x] end end Bar.new.method( :bar).call("method") Bar.new.send( :bar, "send")