是否有基于Rack或Sinatra的环境配置工具?

问题描述:

有什么在西纳特拉/机架世界同类到Rails加载的config\enviroments\*.rb文件之一取决于Rails.env是否有基于Rack或Sinatra的环境配置工具?

我知道配置加载方案,我可以开发一个很容易,我只是想知道,如果有一些已经在地点。

事实证明,有一些来自Sinatra,提供了一个类似的,但有限的功能。

看到代码: https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb#L1120

所以,你可以这样做:

class MyApp < Sinatra::Base 
    configure :development, :test do 
    #only executes this code when environment is equal to one of the passed arguments 
    # I'm pretty sure Sinatra sets this based on ENV['RACK_ENV'] 
    end 
end 

如果您按照Rails惯例为config/environments/environment_name.rb中的每个环境添加一个文件,可以在您的Sinatra应用程序或Rack.ru文件中放入Rack:

Dir.glob(File.dirname(__FILE__) + "/config/environments/#{settings.environment}.rb", &method(:require)) 

通过一些小的修改,您可以使其加载其他文件位置/组合。 Sinatra的配置块也同样适用。

+0

谢谢,这就是我最终做的事情......除非我让它失败,如果env文件不存在:'require“config /#{settings.environment}”' – 2010-12-20 03:54:40

我适应矿山从monkrb.com(它也YAML RoR中反正)

YAML.load_file(path_of "config/settings.yml")[RACK_ENV] 

例如 http://github.com/codepants/yasumi/blob/master/config/settings.yml

有一个叫西纳特拉:: ConfigFile实现,现在住在西纳特拉::的Contrib http://www.sinatrarb.com/contrib/config_file.html

有很多有用的东西在里面。