Чтобы получить отформатированный стек вызовов Ruby, вы можете использовать метод Kernel#caller
. Этот метод возвращает массив, содержащий трассировку текущего стека выполнения.
Вот пример того, как можно получить и отформатировать стек вызовов Ruby:
def format_call_stack
caller.map.with_index do |call, index|
"##{index + 1} #{call}"
end.join("\n")
end
puts format_call_stack
В этом примере метод format_call_stack
использует метод caller
для получения стека вызовов. Затем он перебирает каждый вызов, используя map.with_index
, чтобы добавить номер строки и символ решетки перед каждым вызовом. Наконец, он объединяет форматированные вызовы с символами новой строки и печатает результат.
Это выведет что-то вроде:
#1 test.rb:3:in `format_call_stack'
#2 test.rb:8:in `<main>'