Ruby中是否有办法在当前脚本中通过require / include查找所有类/模块?
答案 0 :(得分:0)
不追溯。 AFAIK运行时没有记录加载某些内容的位置,因此无法判断当前脚本是否是加载负责创建特定类或模块的文件的脚本。您可以获得的最接近的方法是跟踪自己正在加载的内容,或者使用ObjectSpace来查找在给定时间点加载的所有类和模块。
答案 1 :(得分:0)
类和模块是常量。
因此,如果您要从Object获取所有常量,然后执行require,并在加载后从您的调用中减去该信息,您将看到任何新内容。
它可能看起来像这样:
my_constants = Object.constants
require 'my_library'
new_classes_and_modules = my_constants - Object.constants