0

Ruby 中有没有办法通过当前脚本中的 require/include 找到所有加载的类/模块?

4

2 回答 2

0

不追溯。AFAIK 运行时不会记录从何处加载某些内容,因此无法判断当前脚本是否是加载负责创建特定类或模块的文件的脚本。最接近的方法是跟踪自己正在加载的内容,或者遍历 ObjectSpace 以查找在给定时间点加载的所有类和模块。

于 2013-04-02T00:40:44.630 回答
0

类和模块是常量。

因此,如果您要从 Object 中获取所有常量,然后执行 require,并在加载后从调用中减去该信息,您会看到任何新的东西。

它可能看起来像这样:

my_constants = Object.constants
require 'my_library'
new_classes_and_modules = my_constants - Object.constants
于 2013-04-02T10:04:44.977 回答