如何使我正在开发的gem可以在rubygems中自动加载而无需构建/安装?

3
我正在使用Jeweler在自定义目录下开发一个gem。 我希望能够在任何应用程序中(以及$PATH中的可执行文件)要求该gem,而无需每次修改后都构建和安装它。
我想过两种方式: 1. 我创建一个符号链接到$GEM_HOME/gems和$GEM_HOME/bin 2. 我将bin目录添加到$PATH并将lib目录添加到rubygems以进行加载。
但我确定有更好的方法来完成这个任务。
2个回答

4

您可以在gem命令中指定本地路径:

gem 'your-gem', '1.2.3', :path => 'path/to/your-gem'

更新:正如@Nick在评论中指出的那样,这是特定于使用bundler的。一般来说,只需要require '/path/to/your-gem。
然而,我想补充一点,如果你正在使用自定义开发的gem,并且还没有使用bundle,那么bundle可能会让你的生活更轻松。这是因为使用bundler时,当你完成开发gem(或处于稳定/发布状态)后,可以像这样直接从github存储库加载gem:
gem 'your-gem', :git => 'git@github.com:you/your-gem.git'

这是特定于使用bundler的。一般来说,只需require '/path/to/your-gem' - Nick
我正在使用Jeweler,它确实使用Bundler。 - Zequez

0

不需要在你的 Gemfile 上瞎折腾。

require 'bundler/setup' 会将正确的 gem 放入你的 $LOAD_PATH 中,并允许你在下一行中引用它。

#!/usr/bin/env ruby
require 'bundler/setup'
require '<gem-name>'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接