Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 自定义ruby gem不遵守配置信息_Ruby On Rails_Ruby_Rubygems - Fatal编程技术网

Ruby on rails 自定义ruby gem不遵守配置信息

Ruby on rails 自定义ruby gem不遵守配置信息,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,我正在编写一个RubyGem,它依赖于正在运行的应用程序中的配置信息 我正试图遵循一种基于此的模式 或 我可以看到外部应用程序中的配置/初始值设定项数据确实加载了,但问题是,我有依赖于初始值设定项的代码,该初始值设定项在gem获取初始值设定项设置之前运行 如何保证及时加载初始化数据 以下是我的配置/初始值设定项代码: MbSharedScoreboard.configure do |config| config.foo = "bar" end 这是我在gem中读取数据的顺序: requi

我正在编写一个RubyGem,它依赖于正在运行的应用程序中的配置信息

我正试图遵循一种基于此的模式 或

我可以看到外部应用程序中的配置/初始值设定项数据确实加载了,但问题是,我有依赖于初始值设定项的代码,该初始值设定项在gem获取初始值设定项设置之前运行

如何保证及时加载初始化数据

以下是我的配置/初始值设定项代码:

MbSharedScoreboard.configure do |config|
   config.foo = "bar"
end
这是我在gem中读取数据的顺序:

require "mb_shared_scoreboard/configuration"
require "mb_shared_scoreboard/version"
require "mb_shared_scoreboard/models/service"
require "mb_shared_scoreboard/models/subject"
require "mb_shared_scoreboard/models/foo"

module MbSharedScoreboard

  def self.root
    File.expand_path('../..', __FILE__)
  end

end
下面是configuration.rb—加载的第一个文件:

module MbSharedScoreboard

  class Configuration
    attr_accessor :foo
    def initialize
      @foo = "foo"
    end
  end

  class << self
    attr_accessor :configuration
  end

  def self.configure
    self.configuration ||= Configuration.new
    yield configuration
    puts "startup configuration: #{self.configuration.to_s}"
  end 
end
模块MBSharedCoreBoard
类配置
属性存取器:foo
def初始化
@foo=“foo”
结束
结束
类根据

在极少数情况下,应用程序需要先运行一些代码 Rails本身已加载,请将其置于require'Rails/all'调用之上 在config/application.rb中

您可能只需要将该文件包含在那里,而不需要移动整个内容