Tôi đang tạo một lớp kỳ lạ, nơi tôi muốn bắt mọi phương thức được gửi đến một đối tượng của lớp. Tôi có thể đạt được hầu hết những gì tôi muốn với method_missing, ví dụ:Ruby: Bắt tất cả các phương thức được gửi đến một đối tượng
class MyClass
def method_missing m, *args
# do stuff
end
end
Vấn đề là tất cả các phương pháp thể hiện mà MyClass kế thừa từ Đối tượng. Tôi có thể đi qua từng phương pháp từng người một và định nghĩa lại chúng, nhưng tôi đã hy vọng một cách tiếp cận linh hoạt hơn. Tất cả các phương thức lập trình meta tôi đã thử đã phàn nàn với một NameError khi tôi cố gắng chạm vào các phương thức instance đó.
Đó chính xác là những gì tôi đang tìm kiếm! – Max
Tốt hơn nhiều khi sử dụng BasicObject, vì nó hoàn thành cùng một điều và an toàn hơn nhiều. – Max
Lưu ý. Khi câu trả lời này được đăng 1.8 vẫn còn khá phổ biến trong các kịch bản sản xuất, và như vậy 'BasicObject' vẫn chưa tồn tại. – numbers1311407