你如何檢查猴子補丁已經完成了Ruby中的特定類?如果這是可能的,是否也可以獲得已修補的屬性的先前實現?您如何檢測到Ruby中發生了猴子修補?
8
A
回答
3
我發現這篇博客文章涉及如何使用method_added來跟蹤猴子修補。將其擴展到跟蹤修補的方法並不難。
http://hedonismbot.wordpress.com/2008/11/27/monkey-business-2/:
通過使用公開課,我們可以重新定義爲method_added Class的實例和方法的任何類中定義的每個時間做一些定製的東西。在這個例子中,我們正在重新定義method_added,以便跟蹤上次定義方法的位置。
#!/usr/bin/env ruby class Class @@method_history = {} def self.method_history return @@method_history end def method_added(method_name) puts "#{method_name} added to #{self}" @@method_history[self] ||= {} @@method_history[self][method_name] = caller end def method_defined_in(method_name) return @@method_history[self][method_name] end end
8
有鉤子method_added
和method_undefined
。 Garry Dolley寫了一個I mmutable module,可以防止猴子打補丁。
相關問題
- 1. 猴子修補Ruby的哈希類
- 2. 在PHP中修補猴子
- 3. 猴子修補子類
- 4. 如何在Ruby on Rails中修補猴子?
- 5. 如何通過猴子修補
- 6. 如何猴子修補節點對象?
- 7. PyQt猴子修補QLineEdit.paste?
- 8. alias_method_chain和猴子修補
- 9. Python猴子修補程序
- 10. 猴子修補和調度
- 11. 猴子修補類中的屬性?
- 12. 在滑軌3中修補猴子3
- 13. PHP 7中的猴子修補程序
- 14. 猴子修補包含在Ruby寶石中的Mongoid模型
- 15. 推薦的方法來修補猴子在Ruby中類
- 16. 如何檢測Gevent的猴子修補是否處於活動狀態?
- 17. 猴子修補Django表單類嗎?
- 18. 猴子修補紅寶石的方法
- 19. Python:覆蓋(猴子修補)類
- 20. 重寫猴子修補的方法
- 21. 猴子修補CKEditor嵌入YouTube視頻
- 22. 紅寶石猴子修補陷阱
- 23. CherryPy,Multiprocessing和Gevent猴子修補程序
- 24. 猴子修補django模型字段
- 25. 猴子修補和回調錯誤
- 26. F#模塊可以猴子修補嗎?
- 27. 「猴子修補」真的不好嗎?
- 28. 如何在huey任務中進行模擬/猴子修補?
- 29. 一隻猴子在python中如何修補一個函數?
- 30. 如何修補ruby
可能與我:http://stackoverflow.com/questions/175655/how-to-find-where-a-ruby-method-is-defined-at-runtime - 如果有人知道這一點,請讓我知道! – 2008-12-02 21:39:00