tutorial ruby sinatra pry

ruby - tutorial - ¿Cómo usar Pry con Sinatra?



sinatra ruby github (3)

Resumen

  1. El uso require ''pry'' en la parte superior de su aplicación.
  2. Llame binding.pry en su código cada vez que quiera ingresar a la sesión interactiva. Para obtener información sobre el uso de Pry, consulte Dar vuelta al IRB en su cabeza con Pry y el wiki de Pry .
  3. Cuando haya terminado con una sesión interactiva particular, escriba exit o Ctrl-D; Sinatra continuará corriendo donde lo dejó.

Ejemplo

require ''sinatra'' require ''pry'' get ''/'' do @cats = rand(100) html = haml :index binding.pry html end __END__ @@index %html <head><title>Hello World</title></head> %body %p I have #{@cats} cat#{:s unless @cats==1}!

Esto es lo que parece cuando inicio el servidor web:

C:/>ruby pry_into_sinatra.rb == Sinatra/1.2.6 has taken the stage on 4567 for development with backup from Thin >> Thin web server (v1.2.11 codename Bat-Shit Crazy) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:4567, CTRL+C to stop

Cuando realizo una solicitud en un navegador web a http: // localhost: 4567, la consola cae en el depurador Pry antes de enviar el resultado:

From: pry_into_sinatra.rb @ line 7 in Sinatra::Application#HEAD /: 2: require ''pry'' 3: 4: get ''/'' do 5: @cats = rand(100) 6: html = haml :index => 7: binding.pry 8: html 9: end 10: 11: __END__ 12: @@index pry(#<Sinatra::Application:0x3300ac8>)> @cats => 42 pry(#<Sinatra::Application:0x3300ac8>)> puts html <html> <head><title>Hello World</title></head> <body> <p>I have 42 cats!</p> </body> </html> => nil pry(#<Sinatra::Application:0x3300ac8>)> exit 127.0.0.1 - - [24/Aug/2011 13:25:57] "GET / HTTP/1.1" 200 96 28.5390 127.0.0.1 - - [24/Aug/2011 13:25:57] "GET /favicon.ico HTTP/1.1" 404 447 0.0010

Más depuración

Si desea poder usar comandos de depuración tradicionales, como establecer puntos de interrupción basados ​​en línea, o avanzar o interrumpir cuando se presentan excepciones, consulte la biblioteca PryDebug de Mon-Ouie.

Estoy escribiendo mi primera aplicación Sinatra y me gustaría usar Pry para inspeccionar / depurar algunas cosas que están sucediendo en la aplicación. No he usado Pry antes tampoco, pero me gustaría probarlo. ¿Cómo comenzaría a usar Pry con mi aplicación Sinatra?


Yo prefiero pry-depurador. Sin embargo, todavía hay un truco, que no puede hacer palanca mientras ejecuta sinatra bajo el estilo clásico.

Para encontrar la mejor manera de depurar la aplicación sinatra, creé un repositorio en github, que se ve a continuación.

Aquí está el repositorio: https://github.com/hlee/sinatra_debugger_example


Cargue la aplicación en una sesión Pry:

Eche un vistazo a su config.ru . Si se ve algo como esto:

require File.join(File.dirname(__FILE__), ''config'', ''application.rb'')

puedes cargar tu aplicación en Pry usando

bundle exec pry -I . -r config/application.rb # where -I . adds current dir to load path # and -r is the file you want to require

Esto se puede hacer con cualquier módulo o clase siempre que se cumplan las dependencias.

Mire esta hoja de trucos de Pry para ejemplos avanzados de uso de Pry.