是否有基于Rack或Sinatra的环境配置实用程序?

时间:2010-12-20 03:23:17

标签: ruby deployment development-environment sinatra rack

Sinatra / Rack世界中是否有类似于Rails配置加载方案的任何内容,根据config\enviroments\*.rb加载其中一个Rails.env文件

我知道我可以很容易地开发一个,我只是想知道是否已经存在某些东西。

4 个答案:

答案 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