如何在红宝石中引用本地宝石?

use*_*923 7 ruby gem load-path

我将一些ruby代码打包到gem中.我想在其他一些代码中引用gem中的代码.所以在Gemfile中我指定了gem的名称,版本和本地路径.喜欢:

gem 'gemname','0.x', :path => 'RELATIVE_PATH_TO_GEM_FILE'
Run Code Online (Sandbox Code Playgroud)

捆绑安装后,我明白了

Using gemname (0.x) from source at RELATIVE_PATH_TO_GEM_FILE
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时,它无法在gem中找到代码.LOAD_PATH显示ABSOLUTE_PATH_TO_GEM_FILE/lib.

难怪它找不到代码,只有ABSOLUTE_PATH_TO_GEM_FILE下的gem文件.它没有打开包装.所以没有lib目录.

如果我宝石将这个宝石文件安装到我的系统中,那么一切正常.我可以看到gem文件被解压缩到源代码文件中.但我的问题是它是否可以直接引用本地gem文件?

Sea*_*ere 7

不,您不能.gem直接引用文件.

在您的术语中,您需要使用"未打包"的宝石.

:path => '/foo/bar/'
Run Code Online (Sandbox Code Playgroud)

哪里/foo/bar/是(gem)目录lib/,等等.