Forum: Ruby require statement clarification

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Neville F. (Guest)
on 2007-02-06 01:36
For require "filename" if the filename doesn't include an extension is
.rb assumed. I've been unable to find any documentation on this.

Also the Ruby distribution telnet.rb source file includes:
require "socket"

however I'm unable to find any socket.rb file anywhere, only a socket.c
So what does this file refer to?

Neville F.,
Stefano C. (Guest)
on 2007-02-06 01:52
(Received via mailing list)
Alle martedì 6 febbraio 2007, Neville F. ha scritto:
> Neville F.,
You can find the documentation you want with the command 'ri require'.
At any
rate, here's a summary: if the filename has a .rb extension, require
loads it
as a ruby source file. If it has the extension typical of libraries on
system (for example, .so on unix or .dll on windows), it loads it as a
extension. If the extension isn't specified, it tries adding the
to the filename, until it finds an existing file.

Regarding socket, I have a file located
in /usr/lib/ruby/1.8/i686-linux (This is on gentoo linux. I think other
distributions may have it on different paths. I don't know about
This means that socket is a C extension. using require 'socket' will
load the file.

I hope this helps

Timothy H. (Guest)
on 2007-02-06 01:53
(Received via mailing list)
Neville F. wrote:
> Neville F.,
If no extension is specified .rb is the default. If Ruby can't find
filename.rb it will try to load You can specify either .rb
or .so explicitly.
Neville F. (Guest)
on 2007-02-06 02:00
Thanks for that, especially the 'ri require' suggestion.

Neville F.,
This topic is locked and can not be replied to.