我正在写一个简单的宝石,并且在Bundler上遇到了一些麻烦。
我已经创建了一个适用于rspec spec
和rake spec
的Rspec规范。
但是,如果我用bundle exec
运行这些命令,我会收到一条错误,说我的宝石不是模块:
/Users/fiskeben/kode/waffle_cal/lib/waffle_cal/calendar.rb:1:in `<top (required)>': WaffleCal is not a module (TypeError)
from /Users/fiskeben/kode/waffle_cal/lib/waffle_cal.rb:1:in `require'
from /Users/fiskeben/kode/waffle_cal/lib/waffle_cal.rb:1:in `<top (required)>'
from /Users/fiskeben/kode/waffle_cal/spec/spec_helper.rb:1:in `require'
我的宝石定义如下:
require 'waffle_cal/calendar'
require 'waffle_cal/event'
module WaffleCal
end
calendar
和event
实现了两个类(简化):
module WaffleCal
class Calendar
#stuff
end
end
我的Gemfile只包含gemspec
,我已经运行bundle install
。我还删除了.bundle
和Gemfile.lock
,看看它是否有所不同。
答案 0 :(得分:0)
想出来。我的version.rb
声明class WaffleCal
,而其他文件声明module WaffleCal
。解决其中一个问题就解决了这个问题。