5

如果我require在源代码中看到一个。

require "blah"

如何确定该库(“blah”)是由核心 ruby​​ 安装提供还是来自 gem 安装?

4

2 回答 2

1

一旦require找到加载的库文件,它就会将该文件的完整路径添加到$LOADED_FEATURES数组中。所以你可以在那个数组中查看它在哪里找到blah

$LOADED_FEATURES.find_all { |path| puts path if /blah/ =~ path }
于 2013-06-18T23:11:02.803 回答
1

您可以阅读$LOADED_FEATURES并检查路径是否来自 gem,这意味着您正在测试该功能是否属于核心安装。

# return true if library is an external gem
$LOADED_FEATURES.grep(/library/).grep(/gems/).size > 0
于 2013-06-19T00:47:20.647 回答