我想獲得包含Enumerable
的所有類的列表。我可以在Ruby中做到這一點嗎?查找包含Ruby中的Enumerable模塊的所有類
2
A
回答
3
你可以得到所有Module
小號目前在對象存儲(但是請注意,這可能包括Module
s表示不再可達但尚未收集垃圾還)有ObjectSpace.each_object(Module)
既然each_object
像所有其他迭代方法返回一個Enumerator
(其本身在Enumerable
混合),我們可以簡單select
那些Module
S的include?
的Enumerable
模塊在其ancestors
列表:
ObjectSpace.each_object(Module).select {|m| m.include?(Enumerable) }
# => [Process::Tms, Enumerator::Generator, Enumerator::Lazy, Enumerator,
# ObjectSpace::WeakMap, Dir, File, ARGF.class, IO, Range, Struct, Hash,
# Array]
5
您也可以使用ObjectSpace
模塊來獲取所有類和模塊的列表。把額外的檢查Enumerable
require 'set'
enumed = Set.new
ObjectSpace.each_object { |o| enumed.add(o) if [Class, Module].include?(o.class) && o.include?(Enumerable) }
puts enumed.to_a
相關問題
- 1. 包含類的Ruby模塊
- 2. 如何查找包含模塊的所有類別
- 3. 如何查找包含模塊的模塊或類?
- 4. 瞭解Ruby中Enumerable的查找函數
- 5. 在Ruby 1.9.2的目錄中包含所有模塊
- 6. 在Ruby中包含模塊
- 7. 將模塊包含在類中(Ruby Mixins):有什麼更好的?
- 8. Ruby模塊包含和類變量
- 9. 在ocaml中包含模塊中的所有模塊
- 10. 爲什麼Ruby模塊包含排除模塊的單例類?
- 11. 子類繼承包含Ruby中父類的模塊方法
- 12. Ruby模塊包含問題
- 13. 如何訪問包含的ruby模塊中的類變量?
- 14. 在Ruby中,我如何反思模塊中包含的類?
- 15. 模塊何時包含在運行在rails中的Ruby類中?
- 16. ruby NameError包含屬於另一個模塊的類中的Singleton模塊
- 17. 查找給定包中的所有類
- 18. 是否可以在Ruby的其他模塊中包含模塊?
- 19. Ruby在IRB中包含模塊
- 20. 將模塊包含到方法ruby中
- 21. 爲什麼包含模塊的順序在Ruby中有所不同?
- 22. 如何以遞歸方式查找模塊中的所有模塊和類?
- 23. 查找包含兩種模式的所有文件
- 24. 查找包含特定類的所有html元素
- 25. SQL查詢可查找包含所有元音的表中的所有值。
- 26. ruby模塊如何對包含它的類執行條件?
- 27. 根據包含的模塊初始化一個Ruby類
- 28. Ruby - 從包含另一個模塊的模塊獲取類和實例方法?
- 29. AngularJS - 包含查看模塊
- 30. 如何從其他模塊中包含Ruby類擴展?
謝謝。不知道ObjectSpace。 :) – juanitofatas