Если вам нужно перехватить все вызовы определенного объекта, в method_missing
есть много полезных функций:
class Exploder
def method_missing(name, *args)
raise "Method #{name} was called!"
end
end
Затем вы можете заменить его и перехватить вызовы:
$stderr = Exploder.new
Любой вызов типа $stderr.write
теперь вызывает исключение.