[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

require statement clarification

Neville Franks

2/5/2007 11:37:00 PM

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.g... http://www.surf...

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

3 Answers

Stefano Crocco

2/5/2007 11:52:00 PM

0

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.g... http://www.surf...

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

Tim Hunter

2/5/2007 11:52:00 PM

0

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.g... http://www.surf...
>
>
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.

Neville Franks

2/6/2007

0

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

---
Neville Franks, http://www.g... http://www.surf...

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