我正在为依赖初始化程序的rails上的ruby编写gem。我有config/initializers/pi.rb
:
PI_KEY = 'my key'
PI_SECRET = 'my secret'
并在宝石的lib/pi.rb
中我想:
module Pi
HEADERS = {
'X-Auth-Key' => ::PI_KEY
'X-Auth-Secret' => ::PI_SECRET
}
end
但是宝石加载时PI_KEY未定义。 Rails.root
当时也未定义,因此我不能只require
初始值设定项。那么我如何从rails初始化器将配置传递给我的gem呢?
答案 0 :(得分:1)
你可以这样做,例如:
在lib/pi.rb
:
module Pi
class << self
mattr_accessor :key, :secret
end
def self.configure(&block)
yield self
end
end
然后在应用程序中config/initializers/pi.rb
:
Pi.configure do |config|
config.key = 'some key'
config.secret = 'I am Batman'
end