为了使用rubyzip我安装了gems:
gem install --local rubyzip-1.1.7.gem
gem install --local zip-zip-0.3.gem
在我的代码中,我使用require方法调用gems:
require 'zip/zip'
require 'zip/filesystem'
我想使用require直接从我们机器上的位置加载gems。
我想要这样的事情:
require 'path_to_my_zip_gem'
其中path_to_my zip_gem包含gem文件
答案 0 :(得分:1)
基本上,这是因为require
方法按名称从$:
或$LOAD_PATH
“如果文件名没有解析为绝对路径,那么它将是 在$ LOAD_PATH($ :)中列出的目录中搜索。“
如果您想要从“本地”路径中获取gem,那么require_relative
方法可以提供帮助,因为您可以指定相对于需求文件路径的路径。查看官方文档以获取更多详细信息:
http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-require_relative
答案 1 :(得分:0)
最简单的答案是
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