为什么捆绑exec失败但它没有工作正常?

时间:2015-04-15 17:41:21

标签: ruby gem

我正在写一个简单的宝石,并且在Bundler上遇到了一些麻烦。

我已经创建了一个适用于rspec specrake 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

calendarevent实现了两个类(简化):

module WaffleCal

  class Calendar
    #stuff
  end
end

我的Gemfile只包含gemspec,我已经运行bundle install。我还删除了.bundleGemfile.lock,看看它是否有所不同。

1 个答案:

答案 0 :(得分:0)

想出来。我的version.rb声明class WaffleCal,而其他文件声明module WaffleCal。解决其中一个问题就解决了这个问题。