Sinatra / Rack世界中是否有类似于Rails配置加载方案的任何内容,根据config\enviroments\*.rb
加载其中一个Rails.env
文件
我知道我可以很容易地开发一个,我只是想知道是否已经存在某些东西。
答案 0 :(得分:5)
如果您遵循为config / environments / environment_name.rb中的每个环境放置文件的Rails约定,您可以在您的Sinatra应用程序中放置类似的内容,或者在config.ru文件中放置Rack:
Dir.glob(File.dirname(__FILE__) + "/config/environments/#{settings.environment}.rb", &method(:require))
通过一些小修改,您可以加载其他文件位置/组合。 Sinatra的配置块也可以正常工作。
答案 1 :(得分:5)
事实证明有来自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
答案 2 :(得分:3)
有一个叫Sinatra :: ConfigFile,现在住在Sinatra :: Contrib http://www.sinatrarb.com/contrib/config_file.html
那里有很多有用的东西。
答案 3 :(得分:1)
我从monkrb.com改编自我(无论如何,它也是在RoR中的yaml)
YAML.load_file(path_of "config/settings.yml")[RACK_ENV]
e.g。 http://github.com/codepants/yasumi/blob/master/config/settings.yml