Gerald said:
This is defined behavior, covered in the file eval.c around #6912
For the required file to be used as source, it MUST have a ".rb"
suffix. irb also checks for the extention. If the extention is not
present, then the extention is ASSUMED, and the require fails
when that filename+ext is not present. Perhaps a paranoia
about lots of other languages, etc., but it may save problems
with other types of files. The extention provides the clues
necessary to indicate how to handle that file.
Okay. Well, I expected it to try the literal path first, then try .rb,
then try the DLEXT. I'm not sure what problems it saves. I could just
as well name a python file with .rb. Ruby won't know the difference
until it chokes regardless. In my particular usecase I have some
scripts that can be run as stand alone executables or be required and
used by another script. So I don't want them to have the extension. But
as Nabu said I can use #load instead, so at least I have recourse.
Depending on an extension like this just seems so 80's, i.e. out-moded.
T.