Выискивание / отладка в IRB. Обезьяна-патч метод, а затем "отменить" это изменение, не выходя из IRB? - PullRequest
2 голосов
/ 05 октября 2011

Я считаю, что IRB чрезвычайно полезен как инструмент для отладки методом проб и ошибок, где я на самом деле не знаю, откуда возникла проблема, но могу воспользоваться преимуществом REPL-природы IRB, чтобы быстро перебирать список потенциальныхспособы воспроизвести проблему и устранить ее.

Иногда я решаю заново открыть класс, принадлежащий загруженному гему, и добавить некоторый отладочный вывод в метод или полностью переопределить метод.После того, как это будет сделано, есть ли способ легко «убрать обезьяны» из класса, не выходя из IRB и не перезапуская его (мой текущий подход)?

1 Ответ

2 голосов
/ 05 октября 2011

Если вы переопределяете метод, вы можете создать и alias для старого метода, а затем определить свой новый. Когда вы закончите, вы можете переопределить метод еще раз и вызвать псевдоним метода.

Шаг первый:

alias :old_method :method

def method
  # fancy new stuff
end

Когда вы закончите:

def method
  old_method
end
...