如何直接从其路径中获取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($ :)中列出的目录中搜索它。”
如果您想要从“本地”路径中获取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