Ruby · Avançado · Inglês · Técnico
BasicObject
Raiz da hierarquia de classes de Ruby, acima de Object. Tem pouquíssimos métodos, o que a torna ideal para proxies e DSLs que precisam de um objeto em branco.
Onde usar
Subclasses de BasicObject não herdam métodos de Kernel como puts, nem inspect, então um method_missing pega quase tudo. É a base de objetos fantasma e builders de XML.
Em código
class Mudo < BasicObject
def method_missing(nome, *)
"chamou #{nome}"
end
end
p Mudo.new.puts # => "chamou puts"
p Mudo.new.class # => "chamou class"Exemplos
The proxy inherits from BasicObject so it forwards almost everything.
O proxy herda de BasicObject para repassar quase tudo.
BasicObject doesn't even have inspect.
BasicObject nem tem inspect.
Cuidado
Não confunda com Object: dentro de uma subclasse de BasicObject, constantes como String não são achadas sem o prefixo ::.
Antônimos
Object