如果我在源代码中看到require
。
require "blah"
如何确定核心ruby安装是否提供了该库(“blah”),或者它是否来自安装gem?
答案 0 :(得分:1)
require
找到加载的库文件后,会将该文件的完整路径添加到$LOADED_FEATURES
数组中。因此,您可以查看该数组以查看它找到的位置blah
$LOADED_FEATURES.find_all { |path| puts path if /blah/ =~ path }
答案 1 :(得分:1)
您可以阅读$LOADED_FEATURES
并检查路径是否来自gem,这意味着您正在测试该功能是否属于核心安装。
# return true if library is an external gem
$LOADED_FEATURES.grep(/library/).grep(/gems/).size > 0