ExpertiDict

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

const missing

/kɑnst ˈmɪsɪŋ/método de gancho

Método de classe chamado pelo Ruby quando uma constante não é encontrada. Sobrescrevê-lo permite carregar código sob demanda ou criar constantes dinamicamente.

Onde usar

Foi a base do autoload antigo do Rails; hoje o Zeitwerk usa autoload e a API de constantes do Ruby. Aparece ao depurar um NameError de constante.

Em código

module Config
  def self.const_missing(nome)
    "sem #{nome}"
  end
end
p Config::TIMEOUT  # => "sem TIMEOUT"

Exemplos

The old Rails autoloader relied on const_missing.

O autoloader antigo do Rails dependia do const_missing.

Overriding const_missing can hide typos.

Sobrescrever const_missing pode esconder erros de digitação.

Cuidado

Não use para esconder erros de digitação: toda constante inexistente passaria a devolver algo e o NameError sumiria.

Veja também

Todos os termos de Ruby