On Tue, Jul 10, 2012 at 9:29 AM, Vít Ondruch <[email protected]> wrote: > You are right, you can change the $PROGRAM_NAME. I'll make several points > here > > * Is there some more reliable way how to detect the script name? > * What is the use case and how widely is this practice used? Can we ignore > this case? Python handler ignores it if I am not mistaken (but we should be > better of course ;) > * ABRT ignores such failure and it just logs something like "Executable > 'foo.rb' doesn't belong to any package" into /var/log/messages.
If the Ruby documentation is to be believed you could use Kernel#caller to get a stack trace which apparently has a set format including the file name. It is of course swapping a user modifiable value for something slightly more fragile (it could potentially change in some future version). Perhaps use the current way and fall back to Kernel#caller if $0 doesn't resolve to a real file (which would indicate it has been modified. None of this of course covers scenarios where user/other code is loaded from within another program (think rake, thor, etc) but in the case of an exception, Exception#backtrace is the same format as Kernel#caller. -- There are 10 kinds of people in the world: Those who understand binary and those who don't... _______________________________________________ ruby-sig mailing list [email protected] https://admin.fedoraproject.org/mailman/listinfo/ruby-sig
