加载Ruby gem的文件夹在哪里

时间:2018-03-07 03:39:12

标签: ruby rubygems

在ruby代码中,需要使用require语句,例如

require 'rest-client' 

应该从ruby加载路径加载ruby gems。但是,当通过ruby加载路径搜索时,我看不到任何rest-client gem?那么红宝石代码如何知道红宝石宝石的位置?

IRB(主):001:0> $ LOAD_PATH

=> [“/home/abc/.rbenv/rbenv.d/exec/gem-rehash”,......]

1 个答案:

答案 0 :(得分:0)

RubyGems monkeypatches Kernel#require,因此它将尝试在gem路径中找到包含该文件的gem,然后“激活”该gem,这基本上意味着将该gem的库目录添加到加载路径。

换句话说,当你调用require时,你不会从核心库调用require,而是从RubyGems中调用require来覆盖核心库中的require图书馆。 RubyGems的iterate知道如何搜索宝石。