0

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 アプリを構成する方法はありますか? よろしくお願いします。

4

2 に答える 2