Hello, How does Ruby store where methods are defined? For example, where does Ruby look to get file names and line numbers in the stack trace?
on 2006-01-21 02:15
on 2006-01-21 04:45
On Jan 20, 2006, at 7:37 PM, Brian Takita wrote: > http://weblog.freeopinion.org Check out the __FILE__ and __LINE__ constants.
on 2006-01-21 07:10
> > Check out the __FILE__ and __LINE__ constants. I apologize for not being clear. Lets say we have a class Test that raises an error. class Test def method_with_an_error raise Error end end t = Test.new t.method_with_an_error Now the following error message is outputted in the command line. /home/btakita/src/scratch3.rb:3:in `method_with_an_error': Exception (Exception) from /home/btakita/src/scratch3.rb:8 How does Ruby keep track where :method_with_an_error is stored? Can I make a query as to where :method_with_an_error is defined?
on 2006-01-21 07:14
I meant to paste this code: class Test def method_with_an_error raise Exception end end t = Test.new t.method_with_an_error
on 2006-01-21 14:16
2006/1/21, Brian Takita <email@example.com>: > raise Error > from /home/btakita/src/scratch3.rb:8 > > How does Ruby keep track where :method_with_an_error is stored? > Can I make a query as to where :method_with_an_error is defined? You mean without it raising an excepption? AFAIK there is no other way than searching sources for the definition. You can also use $: to check directories in the load path. Wait, there might be one other option: use set_trace_func at the beginning of your script (before the first require) and record all class and method definitions. Kind regards robert