Ruby/Reflection/caller

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
м (1 версия: Импорт выборки материалов по Ruby)
 

Текущая версия на 17:57, 13 сентября 2010

Generating and Understanding Tracebacks

/usr/bin/ruby                                                  
 
def do_work
  first = true                                                 
  caller.each do |c|                                           
    puts %{#{(first ? "I" : " which")} was called by "#{c}"}   
    first = false                                              
  end                                                          
end                                                            
do_work



Get caller line number

def func1
  puts caller[0]
end
def func2
  func1
end
func2              # Prints: somefile.rb:6:in "func2"