ExpertiDict

Ruby · Avançado · Inglês · Técnico

singleton class

/ˈsɪŋɡəltən klæs/substantivo

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)  # => false

Exemplos

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

Veja também

Todos os termos de Ruby