From: Brent Roman Date: 2003-02-11T16:56:10+09:00 Subject: Methods to get at Source References I'm trying to add the ability to view and edit source similarly to that found in SmallTalk browsers. Please see ruby-talk posts #21478 and #21555 The technique suggested by Matz at that time (Sep. '01) to get source file and line # for a method was: eval("[__FILE__,__LINE__]", obj.method(:method_name).to_proc) This dosn't appear to work. __FILE__ and __LINE__ are evaluated in the parser, so I cannot see how this technique could succeed. However, it does feel like the "right" way to do this and I think it could be made to work if __FILE__ and __LINE__ were implemented as virtual global variables (in eval.c?). In any case: The simple patch to eval.c suggested originally by Ned Konz in post #21478 does appear to work when applied to Ruby v1.68. It is only valid for Methods, but that's perfectly adequate for my needs. [Most Procs are anynonomous anyway.] Without some sort of patch on the core, the only way I see to get at source references is via the method_added hooks. This is _much_ less efficient and especially frustrating given that this information is already encoded all over the parse tree.