是否有基于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的配置块也同样适用。
答
我适应矿山从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
有很多有用的东西在里面。
谢谢,这就是我最终做的事情......除非我让它失败,如果env文件不存在:'require“config /#{settings.environment}”' – 2010-12-20 03:54:40