Я понятия не имею, зачем вам это нужно, но caller.size
должен выполнить работу:
def recurse(n)
puts caller.size
recurse(n-1) unless n <= 0
end
recurse(5) # => Outputs 1 to 6
Это работает в Ruby 1.9, но, очевидно, в Ruby 1.8 есть ошибка. Просто подал на Redmine .