Ruby jsem se zacal venovat posledni rok ponekud aktivneji a porad me neprastava prekvapovat svou eleganci, za niz vdeci predevsim blokum(closures), mixinum (injektovani funkcionality vedle dedicnosti) a runtime modifikacim objektoveho modelu.
Demonstrovat silu techto konstruktu si muzeme napriklad na patternu Singleton. V prehistorickych programovacich jazycich obvykle udelam private konstruktor, budu mit lokalni statickou instanci a statickou synchronizovanou metodu pro pristup k ni.
V Ruby kod vypada nasledovne
require 'singleton'
class FooService
include Singleton
end
a pouziti
foo1 = FooService.instance