Как я отлаживаю метод Ruby's_missing? - PullRequest
1 голос
/ 18 января 2012

Позвольте мне пояснить это немного ...

У меня есть класс, который обрабатывает файлы XML.Этот класс реализует method_missing и использует метод, переданный в качестве идентификатора тега, а затем возвращает объект, представляющий узел XML для этого тега.Код более или менее похож на это:

def method_missing(m, *args, &block)
  XmlNode.new(@xml.at_css(m.to_s.upcase))
end

Я сделал что-то странное, и иногда параметр m не отправляется вызову метода.

Isесть ли способ для меня точно определить, какой из вызовов является виновником?

Один из способов, который я могу придумать, - записать сам вызов метода, но как мне это сделать из метода method_missing?

1 Ответ

1 голос
/ 18 января 2012

Очень грубый способ - вывести стек вызовов, набрав

puts caller

прямо над строкой XmlNode ... Это выведет стек вызовов, и вы сможете увидеть, кто вызвал метод.

...