ruby - tutorial - ¿Cómo usar Pry con Sinatra?
sinatra ruby github (3)
Resumen
- El uso
require ''pry''
en la parte superior de su aplicación. - 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 . - 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.