instance method Object#public_send

public_send(name, *args) -> object[permalink][rdoc][edit]
public_send(name, *args) { .... } -> object

オブジェクトの public メソッド name を args を引数にして呼び出し、メソッドの実行結果を返します。

ブロック付きで呼ばれたときはブロックもそのまま引き渡します。


1.public_send(:+, 2)  # => 3
[PARAM] name:
文字列かSymbol で指定するメソッド名です。
[PARAM] args:
呼び出すメソッドに渡す引数です。
[EXCEPTION] ArgumentError:
name を指定しなかった場合に発生します。
[EXCEPTION] NoMethodError:
protected メソッドや private メソッドに対して実行した場合に発生します。

1.public_send(:puts, "hello")  # => NoMethodError

[SEE_ALSO] BasicObject#__send__, Object#send