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

Dan*_*ley 4 ruby deployment rack development-environment sinatra

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

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

小智 5

如果您遵循为config/environments/environment_name.rb中的每个环境放置文件的Rails约定,您可以在您的Sinatra应用程序中放置类似的内容,或者在config.ru文件中放置Rack:

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

通过一些小的修改,您可以加载其他文件位置/组合.Sinatra的配置块也可以正常工作.


Dan*_*ley 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
Run Code Online (Sandbox Code Playgroud)