未初始化的常量Syke :: Core RubyGem

时间:2018-10-01 20:21:06

标签: ruby

我正在构建一个RubyGem来生成测试数据,并且在构建它时遇到了问题。我有一个主要的syke.rb文件,它是从最初的gem版本生成的。

require "syke/version"
require "syke/internet"

mydir = __dir__

require 'i18n'

I18n.load_path += Dir[File.join(mydir, 'locales', '**/*.yml')]
I18n.available_locales = [:en]

module Syke
  class Core
    class << self
      def get(key)
        I18n.t("syke.#{key}")
      end
    end
  end
end

我正在尝试从.yml文件中提取值,因此在我的internet.rb文件中,我这样:

module Syke
  class Internet < Core
    class << self
      def email
        get('internet.domain')
      end
    end
  end
end 

我目前正在尝试使用rspec测试应用程序时出现此错误:

  

NameError:未初始化的常量Syke :: Core

我的Internet类继承了Syke模块下的Core类,因此我很困惑为什么会收到此错误消息。有人知道吗谢谢。

1 个答案:

答案 0 :(得分:1)

问题在于您的require "syke/internet"在定义Syke::Core之前。

就个人而言,我会将Syke::Core的定义移到它自己的文件中,您可以在主syke.rb文件中(在需要Internet之前)或在internet.rb文件本身中进行定义。