如何直接从其路径中获取Ruby gem?

为了使用rubyzip我安装了gem:

gem install --local rubyzip-1.1.7.gem gem install --local zip-zip-0.3.gem 

在我的代码中,我使用require方法调用gem:

  require 'zip/zip' require 'zip/filesystem' 

我想使用require直接从我们机器上的位置加载gem。

我想要这样的事情:

  require 'path_to_my_zip_gem' 

其中path_to_my zip_gem包含gem文件

基本上,这是因为require方法从$:$LOAD_PATH列出的路径按名称加载文件

“如果文件名没有解析为绝对路径,则会在$ LOAD_PATH($ :)中列出的目录中搜索它。”

http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-require

如果您想要从“本地”路径中获取gem,那么require_relative方法可以提供帮助,因为您可以指定相对于require文件路径的路径。 查看官方文档以获取更多详细信息:

http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-require_relative

最简单的答案是

 Gem::Specification.find_by_name("GEM_NAME_HERE").full_gem_path 

 > require File.join(Gem::Specification.find_by_name("railties").full_gem_path, "lib/rails/code_statistics.rb") => true