Bir örneğin davranışı ait olduğu sınıf tarafından belirlenir. Ancak bazen belirli bir örneğin özel bir davranışı olmasını isteyebiliriz. Çoğu yazılım geliştirme dilinde, sadece bir kere kullanacağımız bir sınıf tanımlamak gibi karmaşık bir yol seçebiliriz. Ruby'de her nesneye kendine ait yöntemler verebiliriz.
ruby> class TekilDeneme
| def boyut
| print "25\n"
| end
| end
nil
ruby> dnm1 = TekilDeneme.new
#<TekilDeneme:0xbc468>
ruby> dnm2 = TekilDeneme.new
#<TekilDeneme:0xbae20>
ruby> def dnm2.boyut
| print "10\n"
| end
nil
ruby> dnm1.boyut
25
nil
ruby> dnm2.boyut
10
Yukarıdaki örnekte, dnm1 ve dnm2 aynı sınıfa mensup olmalarına rağmen, dnm2'nin boyut yöntemi yeniden tanımlandığı için farklı davranır. Sadece tekil bir nesneye verilen yönteme tekil yöntem (singleton method) denir.
Tekil yöntemler genelde grafik arayüzü elemanlarında (GUI) değişik düğmelerin değişik
eylemler yapması gerektiğinde kullanılır.
Tekil yöntemler CLOS, Dylan vb. yazılım geliştirme dillerinde olduğu üzere Ruby'ye özgü değildir. Self ve NewtonScript gibi bazı diller ise sadece tekil yöntemlerden oluşmuştur. Bu tür diller prototip tabanlı diller olarak anılırlar.