cannot require a file that doesnt have a prefix?

T

Trans

Huh... why can't I require a file that has no prefix?

% ls
redirect

% irb
require './redirect'
LoadError: no such file to load -- ./redirect
from (irb):1:in `require'
from (irb):1
from :0

T.
 
G

Gerald Murray

Trans said:
Er... s/prefix/suffix/

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.

Best regards,
Gerald
 
N

nobu

Hi,

At Sat, 12 Aug 2006 06:55:14 +0900,
Trans wrote in [ruby-talk:207891]:
You can load it instead.
 
T

Trans

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top