私はSinatraをApacheで使用し、Phusion-Passengerを「クラシック」スタイルで使用しています。
# config.ru
require 'sinatra'
configure do
....
end
require './app'
run Sinatra::Application
いくつかのことを定義したいと思います。configureブロックの内側と外側の定義の違いは何ですか?
# config.ru
require 'sinatra'
# A) Defining logger here
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Global variables here
LOGGER = Logger.new(...)
# C) Gem configuration here
DataMapper::Property::Boolean.allow_nil(false)
configure do
# A) Or defining logger here?
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Or global variables here?
LOGGER = Logger.new(...)
# C) Or gem configuration here?
DataMapper::Property::Boolean.allow_nil(false)
....
end
require './app'
run Sinatra::Application
外部で何をすべきか、内部で何をすべきかという一般的なルールはありますか?違いはなんですか?私は両方のバリアントをテストしましたが、どちらも同じように機能するようでした。
configure
私はこのような環境に反応するために使用できることを知っています:
configure :development do
....
end
したがって、さまざまな環境構成に役立ちます。このユースケースは明らかですが、すべての環境の一般的な構成についてはどうでしょうか。どこに置けばいいの?これはスタイルの問題だけですか?