私はこれが古いことを知っていますが、誰かがこれをきれいにしようとしている場合に備えて、これが私が使用するものです:
class MyApplication < ::Sinatra::Base
# ...
def self.server_settings
{ key: value, ... }
end
# ...
end
実行前に設定を挿入することもできます。
MyApplication.class_exec(server_settings) do |server_params|
def self.server_settings
server_params
end
end
仕様のためにカスタムロガーをアプリケーションに挿入するために、2番目の例を頻繁に使用します。
例えば:
module CustomLogger
def logger
settings.try(:server_settings)[:Logger] || request.logger
end
end
MyApplication.class_exec(CustomLogger) do |logger_module|
helpers logger_module
def self.server_settings
# global specified in guard/spec helper
{ Logger: $LOGGER }
end
end
class MyApplication < ::Sinatra::Base
enable :logging
get '/' do
logger.info "FOO"
end
end
MyApplication.run!
での使用法の詳細については、このソースリンクを参照してください。server_settings
Application::self.run!