Saludos de nuevo despues de haber públicado posts por algún tiempo, el tema es como hacer debugging aplicaciones Rails con ruby-debug, esta gema nos permite debuggear nuestras aplicaciones de una forma simple. Comencemos con las instalacion de la gema
gem install ruby-debug
Una ves instalada la gema si creamos una aplicación rails queremos que esta gema solo funcione en nuestro entorno de desarrollo y test, entonces dirijanse en su aplicacion editen los archivos config/enviroments/development.rb, config/enviroments/test.rb, y aumenten la siguiente linea al final
config.gem 'ruby-debug'
Lo cual permitirá que funcione ruby-debug, en caso de que esten en algún otro Framework como Sinatra lo único que tienen que hacer es aumentar en la primera línea
require 'ruby-debug'
para poder utilizar ruby-debug lo que hay que hacer es lo siguiente, dado que tengamos el código en algún archivo para que pogamos un punto de control lo hacemos así:
def index
@menus = Menu.all :order => "fecha DESC"
debugger # Punto de control
respond_to do |format|
format.html
format.xml {render :xml => @menus}
end
end
enonces debo ejecutar script/server vamos a la dirección donde se ejecutará nuestro código con el navegador y volvemos donde ejecutamos el script/server, me mostrará lo siguiente:
Redirected to http://localhost:3000/menus
Completed in 32ms (DB: 1) | 302 Found [http://localhost/session]
/home/boris/rails/mayasg/app/controllers/menus_controller.rb:7
respond_to do |format|
(rdb:1)
Donde muestra (rdb:1) intoducimos list y nos mostrará el código donde esta parado, si introducimos irb y luego @menus nos devolvera la variable, como en modo consola solo que estamos debugueando y tenemos acceso a variables como session, params, etc. para salir del modo consola escribimos exit, para poder ver la lista de comandos introducimos help, para poder ver donde estamos introducimos where, para moverse en el debug ingresan step, para ver la lista de hilos introduces thread list, introduciendo var local les presentará las variables locales, y si introduces var global les mostrará un listado de las variables globales finalmente para poder continuar el script introducimos cont.
Esperó les sirva de algo este tutor saludos hasta un proximo tutor o artículo.