我想给我的轨道引擎宝石适当的配置可能性。
看起来像这样的东西initializers/my_gem.rb
(链接到当前的初始化程序):
MyGem.configure do |config|
config.awesome_var = true
# config.param_name = :page
end
所以我四处寻找其他宝石中的任何线索,我云发现的最好的就是这个kaminari/config.rb。
但它看起来太老套了,我想一定有更好的方法。
源文件为ActiveSupport::Configurable
得到了不错的文档:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/configurable.rb
我喜欢将配置放入引擎中它自己的类中(就像 kaminari 所做的那样):
class MyGem
def self.configuration
@configuration ||= Configuration.new
end
def self.configure
yield configuration
end
end
class MyGem::Configuration
include ActiveSupport::Configurable
config_accessor(:foo) { "use a block to set default value" }
config_accessor(:bar) # no default (nil)
end
现在我可以使用此 API 配置引擎:
MyGem.configure do |config|
config.bar = 'baz'
end
并使用以下命令访问配置
MyGem.configuration.bar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)