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 singletonA 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