ExpertiDict

Ruby · Essencial · Português · Técnico

método de classe

/ˈmɛ.to.du dʒi ˈkla.si/substantivo

Método chamado diretamente na classe, não nas instâncias. Define-se com def self.nome e serve para fábricas, buscas e utilidades ligadas à classe.

Onde usar

É o que vemos em Pedido.find(1) ou Usuario.padrao. Em Rails, é onde ficam buscas e scopes, enquanto o estado de cada registro fica nos métodos de instância.

Em código

class Usuario
  def self.padrao = new('convidado')
  def initialize(nome)
    @nome = nome
  end
end
p Usuario.padrao.class  # => Usuario

Exemplos

Vou criar um método de classe para montar o objeto padrão.

Esse método de classe faz a busca e devolve as instâncias.

Cuidado

Não confunda com método estático do Java: em Ruby a classe é um objeto, e o método de classe é um método singleton dela.

Sinônimos

método estático

Antônimos

método de instância

Veja também

Todos os termos de Ruby