Když napíšeme skript, a ten chceme používat jednak jako program a pak jako knihovnu, potřebujeme mechanizmus jak zajistit odlišné chování v obou případech.  Při načtení jako knihovny jiným skriptem příkazem require 'moje_knihovna' potřebujeme aby se nevykonával žádný kód, a naopak při přímém spuštění
$ ./moje_knihovnapotřebujeme kód vykonat. Takto odlišné chování v obou případech zajistíme touto konstrukcí přidanou na konec souboru
A k čemu že je to dobré? Například je náš velký program rozdělen do řady menších souborů. V každém jsou související metody a třídy. Při spuštění programu se jednotlivé soubory jen načítají, zatímco když spustíme každy soubor samostatně, provedou se testy funkčnosti v něm naprogramované.
Více v testování, konkrétně „Primitivní testy“.
Máme-li soubor s definicí nějakých objektů, který používáme jako knihovnu, potřebujeme do něj někdy umístnit výkonný kód.  Jde o to, že se soubor chová jinak když jej nahráváme pomocí require 'soubor.rb' z jiného souboru a jinak když jej přímo spustíme 
$ ./soubor.rbToto odlišné chování zajistíme přidáním kódu s podmínkou na konce souboru. Vypadá to nějak takto
if $0 == __FILE__
    # kód který se provede, například spuštění testovací metody
    test
end
Úplný spustitelný příklad
#!/usr/bin/env ruby
# $Id: hello-arun.rb,v 1.1 2002/10/06 09:23:58 radek Exp $
# $Source: /home/radek/cvs/ruby-book/example/misc/hello-arun.rb,v $
def hello
    puts "Hello, world."
end
if $0 == __FILE__
    hello
end
