Definiendo Métodos Singleton

Si def va seguido de una expresión que determina un objeto, seguida de .nombre_de_metodo el método definido es sólo para el objeto específicado.

o = "message"    # A string is an object
def o.printme    # Define a singleton method for this object
  puts self
end
o.printme        # Invoke the singleton
A un método de este tipo se le denomina método singleton.

Los métodos de clase como Socket.tcp y File.delete son, de hecho, métodos singleton.

Ruby implementations typically treat Fixnum and Symbol values as immediate values rather than as true object references.

Debido a ello los objetos Fixnum y Symbol no pueden tener métodos singleton.

For consistency, singletons are also prohibited on other Numeric objects.

Casiano Rodriguez León 2015-01-07