[#3101] Compile_err — "Fergus Hayman" <shayman@...>
[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>
[#3110] my wish list for Ruby — Mathieu Bouchard <matju@...>
[#3119] Re: Min and max? — ts <decoux@...>
>>>>> "M" == Mathieu Bouchard <matju@CAM.ORG> writes:
[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>
Hi,
[#3154] 3-d arrays? — Hugh Sasse Staff Elec Eng <hgs@...>
Is there an idiom for 3-dimensional arrays in Ruby? I see that
[#3167] ruby.h needed to compile Interbase module — Jilani Khaldi <jilanik@...>
Hi all,
[#3189] BUG or something? — "Park Hee Sob" <phasis@...>
Hi,
[#3221] Re: Ruby & Interbase -- Please answer if you know! — ts <decoux@...>
>>>>> "J" == Jilani Khaldi <jilanik@tin.it> writes:
[#3222] Ruby coding standard? — Robert Feldt <feldt@...>
On Fri, 9 Jun 2000, Robert Feldt wrote:
Mathieu Bouchard <matju@cam.org> wrote:
[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>
> |I am new to Ruby and this brings up a question I have had
Aleksi Niemel<aleksi.niemela@cinnober.com> writes:
On 12 Jun 2000, Dave Thomas wrote:
ts <decoux@moulon.inra.fr> writes:
[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>
> I want to contribute to the ruby project in my spare time.
Aleksi Niemel<aleksi.niemela@cinnober.com> writes:
Hi,
On Tue, 13 Jun 2000, Toshiro Kuwabara wrote:
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
[#3331] Selling Rubies by the Carat — Dave Thomas <Dave@...>
[#3338] PID of child processes — Andrew Hunt <Andy@...>
[#3363] chomp! — "David Douthitt" <DDouthitt@...>
I was looking at the documentation for chomp and chomp! - and the results of chomp startled me to say the least.
"David Douthitt" <DDouthitt@cuna.com> writes:
[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>
I was looking at the Ruby editor/IDE for windows and was disappointed with
[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>
Hi All,
Jilani Khaldi <jilanik@tin.it> writes:
Hi,
"NAKAMURA, Hiroshi" <nahi@keynauts.com> writes:
Hi, Dave,
Hello,
[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>
[#3515] Options database (was: Define & Include?) — claird@... (Cameron Laird)
In article <8ikot4$ki$0@216.39.170.247>, Dave LeBlanc <whisper@oz.net> wrote:
[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>
Given that I cannot overload =, how should I go about ensuring a deep
In message "[ruby-talk:03516] Deep copy?"
On Tue, 20 Jun 2000, GOTO Kentaro wrote:
[#3532] Extension in C++? — Robert Feldt <feldt@...>
[#3541] function objects? — Johann Hibschman <johann@...>
Hi folks,
[#3544] A small quiz — Dave Thomas <Dave@...>
[#3588] Interface polymorphism — hal9000@...
Another question, guys.
[#3607] Is there a statistician in the house? — Dave Thomas <Dave@...>
[#3662] Ruby 1.4.5 install from Mandrake cooker rpms ?problem? — Charles Hixson <charleshixsn@...>
This is the first time that I've installed ruby, so
[#3685] no traffic — matz@... (Yukihiro Matsumoto)
Hi,
[#3694] Why it's quiet — hal9000@...
We are all busy learning the new language
Hi,
Hi,
Hi, matz,
Hi,
Hi,
[#3699] Multithreaded/Embedded Ruby? — "Warren Postma" <embed@...>
Is there any information on Thread safety in ruby. Suppose I embed Ruby in a
Hi,
[ruby-talk:03431] Re: There is no "main" function in Ruby (?)
Jilani Khaldi <jilanik@tin.it> writes:
> So I see there is no "main" function to "init" the program in Ruby.
Aleksi Niemel<aleksi.niemela@cinnober.com> writes:
> When you execute the interpreter by saying something like
>
> ruby file_to_execute.rb
>
> it starts to execute Ruby code in the file. In this case it first executes
> the class definition and then the "invisible main".
Ruby has an execution model which will seem strange coming from C++.
Unlike static languages such as 'C', Ruby executes everything. In C,
struct { ... }
is a definition. In Ruby
class ...
end
is executable code -- it's actually running the class definition. This
means you can do interesting things. For example, you could change the
to_s method used by a class from a verbose one to a restrained
one. Using conventional thinking, you'd do something like:
class Fred
def to_s
if $VERBOSE
# ... return large string
else
# ... return compact string
end
end
The 'if' statement is executed every time you call to_s.
However, if you know that $VERBOSE isn't going to change over the life
of the program, in Ruby you can do:
class Fred
if $VERBOSE
def to_s
return 'long................string'
end
else
def to_s
return 'shortstring'
end
end
end
You actually define one of two different methods depending on the
flag. The 'if' is only executed once.
> So actually the main in Ruby is a little bit like in Java. If you write
> something to top-level it gets executed, but usually it's better to write
I thought Java looked for a 'static void final main(String args[])' in
a class of the same name as the class given to the interpreter, but
it's been a while (thankfully).
> if __FILE__ == $0
> # the contents of main
> end
This idiom is not required at all for normal Ruby programs. It's a
trick used by library routine writers that want to include their own
test code in the same file as the library.
If they are included as a library, $0 (the name of the program that's
running) won't be the same as __FILE__, the name of the library
file. The code won't then get executed.
However, run the library as a standalone program, and the two match,
so the test code gets executed.
You don't need this idiom for normal programs.
> There should be the better way (tm). Show me the light.
Don't use it! Seriously - you normally don't have to.
If you don't like it and you _do_ need some kind of self test
capability, you could always do it other ways. For example, create a
library called SelfTest.rb, which contains
$SelfTest = true
In your other libraries, have
if $SelfTest
# code to perform test
end
Then, to enable the self test, use:
ruby -r SelfTest mylibrary.rb
However, __FILE__ == $0 is pretty much an idiom, and people are pretty
much used to it by now.
Regards
Dave