Sto creando una classe strana in cui voglio catturare tutti i metodi inviati a un oggetto della classe. Posso ottenere la maggior parte di ciò che voglio con method_missing, ad es.Ruby: cattura tutti i metodi inviati a un oggetto
class MyClass
def method_missing m, *args
# do stuff
end
end
Il problema è allora tutti i metodi di istanza MyClass eredita da Object. Potrei passare attraverso ogni metodo uno per uno e ridefinirli, ma speravo in un approccio più flessibile. Tutti i metodi di metaprogrammazione che ho provato si sono lamentati con un NameError quando provo a toccare quei metodi di istanza.
Questo è esattamente quello che stavo cercando! – Max
È molto meglio utilizzare BasicObject, poiché realizza la stessa operazione ed è molto più sicuro. – Max
Notato. Quando questa risposta è stata pubblicata, 1.8 era ancora abbastanza comune negli scenari di produzione, e come tale 'BasicObject' non esisteva ancora. – numbers1311407