[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

cannot require a file that doesnt have a prefix?

Trans

8/11/2006 9:52:00 PM

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.

4 Answers

Trans

8/11/2006 9:53:00 PM

0


Trans wrote:
> Huh... why can't I require a file that has no prefix?

Er... s/prefix/suffix/

gmurray

8/12/2006 3:01:00 AM

0

Trans wrote:
> Trans wrote:
> > Huh... why can't I require a file that has no prefix?
>
> 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

Nobuyoshi Nakada

8/12/2006 3:09:00 AM

0

Hi,

At Sat, 12 Aug 2006 06:55:14 +0900,
Trans wrote in [ruby-talk:207891]:
> > Huh... why can't I require a file that has no prefix?

You can load it instead.

--
Nobu Nakada

Trans

8/12/2006 5:00:00 AM

0


Gerald Murray wrote:
> Trans wrote:
> > Trans wrote:
> > > Huh... why can't I require a file that has no prefix?
> >
> > 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.

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.