Ruby 2.4.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