Jakub Hegenbart
2/26/2006 3:20:00 PM
WATANABE Hirofumi wrote:
> Hi,
>
> "Frantisek Fuka" <fuxoft@gmail.com> writes:
>
>
>> When using: "require 'engine.rbx'" under mod_ruby, I get "File does not
>> exist" error. However, if I change "require" to "load", it gets loaded
>> allright. the file and it directory has correct permissions (755).
>> "Untaint"-ing the file does solve the problem.
>>
>> I am particularly confused about this error - how can the ruby say the
>> file does not exist when it evidentnly does?
>>
>
> See ri 'Kernel#require'.
>
> If the file has the extension ``.rb'', it is loaded as a source file;
> if the extension is ``.so'', ``.o'', or ``.dll'', or whatever the
> default shared library extension is on the current platform, Ruby
> loads the shared library as a Ruby extension.
> Otherwise, Ruby tries adding ``.rb'', ``.so'', and so on to the name.
>
>
Oops! Right now I tried this, it really behaves this way. I suspected
initially that this was the case, but in a quick experiment it had
worked for both "require" and "load", so I became confused. But now I
realized I tried it with ".rb" extension rather than ".rbx". /me stupid.
I didn't notice the "file" part in the "file _and_ directory have
correct permissions", so the permissions problem as a logical
afterthought and advice didn't strike this obstacle. :-D
Jakub