ruby のプライベートメソッドにアクセスする方法
その名の通りprivateなmethodなので、レシーバーから呼び出せないが、send
を使えば呼ぶことができる。
他にもinstance_eval
を使っても呼ぶことができる。
通常のコードでは当然使ってはいけないが、テストなどで重宝する。
class C private def private_method "private_method" end end puts C.new.send(:private_method) # => private_method puts C.new.instance_eval{ private_method } # => private_method