Я использую 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
Поэтому он полезен для разных конфигураций среды. Этот пример использования понятен, но как насчет общих конфигураций для каждой среды? Где я их помещаю? Это только вопрос стиля?