Проработав пару недель с Sinatra, я пришел к моменту развертывания своего приложения в промежуточной среде. После просмотра настроек конфигурации sinatra и осмотра я не нашел способа получить файл конфигурации для каждой среды, чтобы вместо этого:
require 'sinatra/base'
require 'sinatra/custom_logger'
class MyApp < Sinatra::Base
helpers Sinatra::CustomLogger
configure :development do
logger = MyCustomLogger::Logger.new(param1,
param2,
param3,
paramX)
set :logger, logger
...
end
configure :production do
logger = MyAnotherCustomerLogger.new(param1, param2)
set :logger, logger
end
configure :whatever do
end
# endpoints definition
end
Я бы хотел получить что-то более чистое, например:
require 'sinatra/base'
require 'environment_config'
class MyApp < Sinatra::Base
register EnvironmentConfig # Not sure how..
...
end
class EnvironmentConfig
configuration :development do
# 10 lines of configuration
end
configuration: production do
# 20 lines of configuration
end
end
И в этом классе / модуле мы можем иметь либо файл для каждой среды, либо один файл со всеми различными конфигурациями.
Тогда мой вопрос: существует ли способ структурировать приложение Sinatra таким образом, чтобы конфигурация не находилась в том же месте, что и определения конечных точек?
Заранее спасибо.