irb上で簡単なメソッドを実行しようとして困ったのでメモ。
解決策
- instance_evalメソッドを使う
- sendメソッドを使う
ほかにも方法はあるがとりあえず2つだけ…
irb上でprivateメソッドを呼び出そうとするとNoMethodErrorが発生する
def foo self + 2 end => :foo 1.foo => `<main>': private method `foo' called for 1:Integer (NoMethodError)
instance_evalメソッドを使う
def foo self + 2 end => :foo 1.instance_eval{foo} => 3
sendメソッドを使う
def foo self + 2 end => :foo 1.send(:foo) => 3