テストとかでやりたくなると思うけど、こんなくだらないことに gem とか使いたくないので、簡単に書ける方法をさがしてる。 class Foo def hello puts "Hello" end end みたいなクラスがあったとして、hello メソッドを一時的に上書きしたい (そして戻したい) とき あるオブジェクトのメソッドだけを上書き これは singleton class を使ったらすぐできるのでかんたん foo = Foo.new orig = foo.method(:hello) # 元のメソッドを呼びたいときだけ必要 foo.define_singleton_method(:hello) do puts "before hello" orig.call puts "after hello" end foo.hello #=> # before hello # Hello #