If you’re doing anything at all involved with $LOAD_PATH, it can be a
right pain trying to track down which file was actually loaded. It would
really help debugging if require returned the full path to the file.
Would this break anything? Alternatively, is there any other way to get
at this information?
While I admit that I haven’t exactly tested it extensively, it’s about
as simple a patch as you can get. In 1.8.7-p302, it’s:
diff --git a/eval.c b/eval.c
index 7156c06…ca4d99b 100644
@@ -7455,7 +7455,7 @@ rb_require_safe(fname, safe)
result = Qtrue;
result = path; } }
Running this gives (obviously):
$ ruby -e ‘p require “socket”’
From a cursory inspection, it looks like the same idea ought to apply to
load.c in 1.9.2. Thoughts, anyone? Given that it’s this simple and I
can’t be the first person to have thought of it, is there a reason it’s
the way it is?