宝石开发无法添加新文件

时间:2017-03-07 16:43:08

标签: ruby rubygems bundler

我在Ruby中开始使用Gem开发时遇到了一些非常基本的问题。

我用这个命令创建了一个新项目。

bundle gem foobar

我现在可以运行

bundle && bundle exec rake spec

一切都很好。

但是我尝试在我的规范中添加新部件

expect(Foobar::BAR).not_to be nil

然后在./lib/foobar/error.rb

中定义它
module Foobar
  BAR="bar"
end

它只是找不到这个文件。错误是NameError: uninitialized constant。我require_relative spec_helper.rb home但这显然不正确或可持续。

我在这里看到了这个问题Missing File in Gem after Build我已将新文件添加到git中。这没有用,直接在gemspec文件中添加文件也无济于事。

整个项目都在https://github.com/ollyjshaw/broken_gem

我做错了什么?它必须是微不足道的,但我看不到它。

答案: 答案在安东尼的评论中 “加载gem时,你不需要你的错误文件:github.com/ollyjshaw/broken_gem/blob/master/lib/foobar.rb#L1” “你将加载你的主模块,该模块将加载它所需的其他模块/类,并在树上运行”

1 个答案:

答案 0 :(得分:1)

通常,您将所有类/模块文件添加到spec_helper.rb文件中的加载路径:

$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
require "your_gem"