如何引用从Ruby脚本本地宝石?(How to reference a local gem from

2019-08-03 04:53发布

我需要从一个普通的Ruby脚本引用本地宝石,无需安装宝石。 论线索如何红宝石指本地宝石? ,我试着用以下设置创建的Gemfile:

%w(
  custom_gem
  another_custom_gem
).each do |dependency|
  gem dependency, :path => File.expand_path("../../#{dependency}", __FILE__)
end

和脚本如下所示:

require 'custom_gem'
CustomGem::Do.something

当我执行此:

bundle exec ruby script.rb

我得到:

script.rb:1:in `require': cannot load such file -- custom_gem (LoadError) from script.rb:1:in `<main>'

如果我离开了require 'custom_gem' ,我得到:

script.rb:3:in `<main>': uninitialized constant CustomGem (NameError)

我甚至尝试没有捆绑,并且只是写gem ... :path =>̣ ...脚本本身,但没有结果。 是否有参考从Ruby脚本定制的宝石,而无需在本地安装的宝石任何其他方式?

Answer 1:

确保你的宝石名称相同的Gemfile(如custom_gem

# Gemfile

source "https://rubygems.org"

gem "custom_gem", path: "/home/username/path/to/custom_gem"

不要忘了实际安装使用捆绑这种宝石

bundle install

在此之后,该脚本应该准备好通过使用bundle exec ruby script.rb

# script.rb

require 'custom_gem'
CustomGem::Do.something


Answer 2:

如果不使用Gemfile中,您可以通过运行安装宝石的本地版本bundle exec rake install在创业板上市的根目录下,然后你可以参考它就像任何其他安装宝石。



文章来源: How to reference a local gem from a ruby script?
标签: ruby gem bundler