ruby configuration sinatra passenger

ruby - sinatra config.ru: ¿para qué sirve el bloque de configuración?



configuration passenger (1)

Estoy usando Sinatra con Apache y Phusion-Passenger con estilo "clásico":

# config.ru require ''sinatra'' configure do .... end require ''./app'' run Sinatra::Application

Quiero definir algunas cosas. ¿Cuál es la diferencia entre definirlo dentro del bloque de configuración o afuera?

# 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

¿Existen algunas reglas generales sobre qué se debe hacer afuera y qué se debe hacer adentro? ¿Cuál es la diferencia? Probé ambas variantes, y ambas parecían funcionar igual de bien.

Sé que configure se puede utilizar para reaccionar en un entorno como este:

configure :development do .... end

Por eso es útil para diferentes configuraciones de entorno. Este caso de uso es claro, pero ¿qué pasa con las configuraciones generales para cada entorno? ¿Dónde los pongo? ¿Es solo una cuestión de estilo?


Esto es, en primer lugar, una cuestión de entornos y, en segundo lugar, una cuestión de estilo. No hay diferencia donde pones tus configuraciones.

Hace que su código sea mucho más legible (IMHO) si lo coloca en un bloque. También le permitirá agregar opciones basadas en el entorno que luego colocará en sus propios bloques respectivos.

Para resumir, depende de usted :)