tutorial rails español ruby sinatra

ruby - rails - ¿Cómo hacer que Sinatra vuelva a cargar automáticamente el archivo después de cada cambio?



sinatra ruby tutorial (9)

estoy usando

# my_app.rb load ''index.rb''

y comienza el servidor de esta manera

ruby my_app.rb

pero nunca vuelve a cargar los cambios que hice en la página de índice.
¿Extrañé algo aquí?


joya instalar sinatra-reloader

require ''sinatra'' require ''sinatra/reloader''

Nota : solo volverá a cargar controladores de sinatra (y, tal vez, algunos comandos de configuración del servidor de sinatra), pero no archivos personalizados, que deberá volver a cargar manualmente.


Cuando ejecuta la aplicación con Passenger Standalone , simplemente cree un archivo tmp/always_restart :

$ touch tmp/always_restart.txt

Consulte la documentation pasajero para obtener más información.


En Windows, estoy usando mi joya de reinicio para esto:

restart ruby my_app.rb

o, con rackup:

restart rackup

Consulte here para obtener más información, espero que la encuentre útil.


Me gusta la gema Shotgun. Si está utilizando una aplicación modular de Sinatra y tiene un archivo config.ru, es fácil de ejecutar.

shotgun config.ru

Consulta la joya here . Es bastante directo y no se necesita configuración.


Puedes usar la gema de rerun .

gem install rerun rerun ''ruby app.rb''

O si está usando rackup

rerun ''rackup''


Si solo cambia sus plantillas, sinatra siempre las reenviará si configura su entorno para el desarrollo:

ruby app.rb -e development


Usted podría usar Guard-rack. Levantado de un artículo en dblock.org :

Agregue esto a su Gemfile:

group :development do gem "guard" gem "guard-bundler" gem "guard-rack" end

Luego, crea un Guardfile en la raíz de tu proyecto con este contenido:

guard ''bundler'' do watch(''Gemfile'') end guard ''rack'' do watch(''Gemfile.lock'') watch(%r{^(config|app|api)/.*}) end

Por último, ejecute Guard, así: bundle exec guard , y rackup volverá a cargar cada vez.


Ver las preguntas frecuentes de Sinatra ,

"¿Cómo puedo hacer que mi aplicación Sinatra vuelva a cargar en los cambios?"

En primer lugar, la recarga de código en proceso en Ruby es difícil y tener una solución que funcione para cada escenario es técnicamente imposible.

Por eso, le recomendamos que realice una recarga fuera de proceso.

Primero necesita instalar la rerun si aún no lo ha hecho:

$ gem install rerun

Ahora si inicia su aplicación Sinatra de esta manera:

$ ruby app.rb

Todo lo que tienes que hacer para volver a cargar es hacer esto:

$ rerun ''ruby app.rb''

Si, por ejemplo, está utilizando rackup, en su lugar, haga lo siguiente:

$ rerun ''rackup''

Entiendes la idea.

Si aún deseas una recarga en proceso, echa un vistazo a Sinatra::Reloader .


joya instalar sinatra-reloader

require ''sinatra/base'' require "sinatra/reloader" class MyApp < Sinatra::Base register Sinatra::Reloader get ''/'' do "Hello Testing1!" end end

Es posible que desee establecer la variable de entorno para el desarrollo y cargar condicionalmente la gema.