为了与rubyzip工作,我安装了宝石:
gem install --local rubyzip-1.1.7.gem
gem install --local zip-zip-0.3.gem
在我的代码调用使用需要方法的宝石:
require 'zip/zip'
require 'zip/filesystem'
我想使用需要直接从他们的位置加载在我的机器上的宝石。
我想财产以后这样的:
require 'path_to_my_zip_gem'
凡path_to_my zip_gem包含宝石文件
基本上,这是因为require
从上市路径方法加载的文件的名字$:
或$LOAD_PATH
“如果文件名不能解析为一个绝对路径,将在$ LOAD_PATH($ :)中列出的目录搜索。”
http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-require
如果你想要求从“地方”路径的宝石则require_relative
方法可以帮助,因为你可以指定相对于需要文件的路径的路径。 看更多详细信息,官方文档:
http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-require_relative
该simpliest答案
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