sendによるメソッドの抽象化

sendメソッド

渡されたオブジェクトに「メッセージを送る」ことによって、呼び出すメソッドを動的に決めることができる。

a = [1, 2, 3]
a.length
=> 3
a.send(:length)
=> 3
a.send("length")
=> 3

xxx = 'length'
a.send("#{xxx}")
=> 3

どれもオブジェクトにlengthメソッドを渡しているため、等価