Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > BasicObjectクラス > __send__
__send__(name, *args) -> object
[permalink][rdoc]__send__(name, *args) { .... } -> object
オブジェクトのメソッド name を args を引数にして呼び出し、メソッドの結果を返します。
ブロック付きで呼ばれたときはブロックもそのまま引き渡します。
例:
class Mail def delete(*args) "(Mail#delete) - delete " + args.join(',') end def send(name, *args) "(Mail#send) - #{name} #{args.join(',')}" end end mail = Mail.new mail.send :delete, "gentle", "readers" # => "(Mail#send) - delete gentle,readers" mail.__send__ :delete, "gentle", "readers" # => "(Mail#delete) - delete gentle,readers"
[SEE_ALSO] Object#__send__