Ruby · Avançado · Inglês · Técnico
singleton class
Classe oculta e exclusiva de um objeto, também chamada eigenclass, onde ficam seus métodos singleton. É também onde moram os métodos de classe.
Onde usar
Entendê-la explica por que def self.foo e class << self fazem a mesma coisa e como o extend funciona. Aparece em metaprogramação e em bibliotecas que dão comportamento a um único objeto.
Em código
s = 'oi'
class << s
def grita = upcase + '!'
end
puts s.grita # => OI!
p s.singleton_methods # => [:grita]
p 'outra'.respond_to?(:grita) # => falseExemplos
Class methods actually live in the singleton class.
Os métodos de classe na verdade vivem na singleton class.
We opened the singleton class to add a helper to one object.
Abrimos a singleton class para adicionar um helper a um único objeto.
Cuidado
Não é o padrão de projeto Singleton: aqui é a classe própria de um objeto, não a garantia de uma única instância.
Sinônimos
eigenclass, metaclasse