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
そして、そのクラス/モジュール内で、環境ごとにファイルを作成するか、すべての異なる構成を含む 1 つのファイルを作成することができます。
私の質問は、構成がエンドポイントの定義と同じ場所にないように Sinatra アプリを構成する方法はありますか? よろしくお願いします。