Require statement clarification

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 Franks, http://www.getsoft.com http://www.surfulater.com

--
Posted via http://www.ruby-forum.com/.

Alle martedì 6 febbraio 2007, Neville Franks ha scritto:

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 Franks, http://www.getsoft.com http://www.surfulater.com

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 that
system (for example, .so on unix or .dll on windows), it loads it as a ruby
extension. If the extension isn't specified, it tries adding the extensions
to the filename, until it finds an existing file.

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

I hope this helps

Stefano

Neville Franks wrote:

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 Franks, http://www.getsoft.com http://www.surfulater.com

If no extension is specified .rb is the default. If Ruby can't find filename.rb it will try to load filename.so. You can specify either .rb or .so explicitly.

Thanks for that, especially the 'ri require' suggestion.

···

---
Neville Franks, http://www.getsoft.com http://www.surfulater.com

--
Posted via http://www.ruby-forum.com/.