Есть ли способ в Ruby, чтобы подсчитать, сколько раз вызывается метод? Я знаю, что caller.first
дает имя файла, номер строки и имя метода вызывающего абонента, но не может найти никакой дополнительной информации.Есть ли способ подсчитать, сколько раз вызывается метод Ruby?
0
A
ответ
4
Используйте TracePoint
для запуска блока кода всякий раз, когда вызывается метод, затем фильтруйте на основе имени метода.
def foo() end
count = 0
name = :foo
TracePoint.trace(:call) do |t|
count += 1 if t.method_id == name
end
count # => 0
foo
count # => 1
foo
count # => 2
count
здесь просто локальная переменная, которая накрыла в .trace
блоке. Вы можете настроить это как константу, или переменную экземпляра, или что бы ни было лучше всего подходит для вашего случая использования.
Используйте 'TracePoint'. – sawa