Перехват вывода в STDERR - PullRequest
0 голосов
/ 05 мая 2020

У меня есть приложение Ruby, которое неожиданно - время от времени выводит одиночный символ перевода строки в stderr. Я бы хотел найти в своей программе место, где это происходит. Анализ Stati c (grepping без учета регистра для stderr ) не выявил ничего полезного, то есть, хотя было несколько операторов STDERR.puts, они всегда выводили также что-то еще, кроме \ n, поэтому они могут ' Это виноват.

1 Ответ

0 голосов
/ 05 мая 2020

Если вам нужно перехватить все вызовы определенного объекта, в method_missing есть много полезных функций:

class Exploder
  def method_missing(name, *args)
    raise "Method #{name} was called!"
  end
end

Затем вы можете заменить его и перехватить вызовы:

$stderr = Exploder.new

Любой вызов типа $stderr.write теперь вызывает исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...