Ruby 我如何确定所需的模块是来自gem还是核心模块?

Ruby 我如何确定所需的模块是来自gem还是核心模块?,ruby,Ruby,如果我在源代码中看到require require "blah" 如何确定该库(“blah”)是由core ruby安装提供的,还是来自gem安装?一旦require找到加载的a库文件,它会将该文件的完整路径添加到$loaded\u FEATURES数组中。因此,您可以在该数组中查看它在哪里找到blah $LOADED_FEATURES.find_all { |path| puts path if /blah/ =~ path } 您可以阅读$LOADED_FEATURES并检查路径是否来自

如果我在源代码中看到
require

require "blah"

如何确定该库(“blah”)是由core ruby安装提供的,还是来自gem安装?

一旦
require
找到加载的a库文件,它会将该文件的完整路径添加到
$loaded\u FEATURES
数组中。因此,您可以在该数组中查看它在哪里找到
blah

$LOADED_FEATURES.find_all { |path| puts path if /blah/ =~ path }

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

# return true if library is an external gem
$LOADED_FEATURES.grep(/library/).grep(/gems/).size > 0

$LOADED_FEATURES.select{| path | path.include?('WHAT TO FIND')}
很好地实现了这一点,它返回一个数组,您可以随意使用它。Ruby Core中绝对没有任何东西需要
require
-ing。也许你是说那个?我想这是可行的。我也测试过了。但我很失望它不在某个元数据中,相反,我在文件系统路径中搜索关键字。哦,好吧。