[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>

10 messages 2011/03/07

[#35476] [Ruby 1.9 - Bug #4489][Open] [PATCH] Encodings with /-(unix|dos|mac)\Z/ — "James M. Lawrence" <quixoticsycophant@...>

20 messages 2011/03/10

[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>

14 messages 2011/03/24

[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>

33 messages 2011/03/28

[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>

12 messages 2011/03/28

[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>

9 messages 2011/03/29

[ruby-core:35579] Re: Stupid Question 999.9!!

From: Loren Segal <lsegal@...>
Date: 2011-03-29 07:06:24 UTC
List: ruby-core #35579

On 3/29/2011 2:58 AM, Charles Thornton wrote:
> OK, Stupid Question 999.9
>
> What is the reason for this IF Block?
>
> It is an example from FXRuby! It seems
> to have no purpose other than being an
> unconditional IF Statement.
>
> if __FILE__ == $0
>    FXApp.new do |app|
>      HelloWindow.new(app)
>      app.create
>      app.run
>    end
> end

It's not unconditional. It executes if $0 is equal to the file. $0, if 
you check, is equal to the script initiated via a ruby process, ie. ruby 
myscript.rb => $0 == "myscript.rb".

In other words, it executes when the script is executed directly and not 
when part of a require/load.

It's the same as the Python convention of:

     if __name__ == '__main__':
       # ... script is being run directly ...

- Loren

In This Thread

Prev Next