Estoy haciendo una clase extraña donde quiero ver todos los métodos enviados a un objeto de la clase. Puedo lograr la mayor parte de lo que quiero con method_missing, p.Ruby: capturando todos los métodos enviados a un objeto
class MyClass
def method_missing m, *args
# do stuff
end
end
El problema entonces son todos los métodos de instancia que MyClass hereda de Object. Podría revisar cada método uno a uno y redefinirlos, pero esperaba un enfoque más flexible. Todos los métodos de metaprogramación que he probado se han quejado con NameError cuando intento tocar esos métodos de instancia.
¡Eso es exactamente lo que estaba buscando! – Max
Es mucho mejor usar un BasicObject, ya que logra lo mismo y es mucho más seguro. – Max
observado. Cuando se publicó esta respuesta, 1.8 todavía era bastante común en los escenarios de producción, y como tal 'BasicObject' aún no existía. – numbers1311407