Ruby · Avançado · Inglês · Técnico
Class new
Forma de criar uma classe anônima em tempo de execução, com Class.new(Superclasse) { ... }. A classe só ganha nome quando é atribuída a uma constante.
Onde usar
Aparece em testes, que criam classes descartáveis, e em bibliotecas que geram classes dinamicamente, como modelos ou serializadores.
Em código
anonima = Class.new do
def falar = "oi"
end
p anonima.name # => nil
Pessoa = anonima
p anonima.name # => "Pessoa"
p Pessoa.new.falar # => "oi"Exemplos
The spec builds an anonymous class with Class.new.
O spec monta uma classe anônima com Class.new.
The class gets its name once you assign it to a constant.
A classe ganha nome quando você a atribui a uma constante.
Cuidado
Não é o mesmo que MinhaClasse.new, que cria uma instância; Class.new cria a própria classe.
Sinônimos
classe anônima