馃拵Ruby Tip馃拵 Depuraci贸n interactiva sin necesidad de instalar gemas.

Andr茅s

20 November 2023

2 mins

 馃拵Ruby Tip馃拵 Depuraci贸n interactiva sin necesidad de instalar gemas.

Existen diferentes gemas populares en el universo de Ruby con diversas funcionalidades y diferentes sintaxis para realizar una depuraci贸n interactiva. Algunas de estas gemas pueden ser byebug o debug. El problema con estas gemas es que, a veces, necesitan ser instaladas, configuradas y con comandos propios que debemos aprender. Esto toma algo de tiempo y muchas veces no hay necesidad de algo tan complejo para un error tan peque帽o.

Para esos casos, tendremos la opci贸n de usar la clase Binding. Esta nos permite encapsular el contexto de ejecuci贸n en un punto determinado y retornarlo para usos futuros. Los objetos Binding pueden ser creados llamando al m茅todo Kernel#binding y la consola se levantar谩 mediante el m茅todo de instancia p煤blico irb.

Con un poco de c贸digo nos quedar谩 m谩s que claro:

# door.rb
class Door
  def initialize
    @open = false
    binding.irb
    puts "Is the door open: #{@open}"
  end
end

Door.new

Al correr nuestro peque帽o script se nos abrir谩 una sesi贸n IRB (Gema por defecto) con la cual podr谩s revisar el contexto y modificarlo:

Documentos/scripts/ruby via 馃拵 v3.2.2
 ruby door.rb

From: door.rb @ line 4 :

    1: class Door
    2:   def initialize
    3:     @open = false
 => 4:     binding.irb
    5:     puts "Is the door open: #{@open}"
    6:   end
    7: end
    8:
    9: Door.new

irb(#<Door:0x00007fa9a0f367a8>):001> @open
=> false
irb(#<Door:0x00007fa9a0f367a8>):002> @open=true
=> true
irb(#<Door:0x00007fa9a0f367a8>):003> exit
Is the door open: true

Y eso es todo, puedes usarlo para depurar tus scripts, web scrappers o lo que sea que est茅s construyendo.

Tambi茅n es muy probable que ya tengas instalada la gema debug, dado que se instala autom谩ticamente con tu versi贸n de Ruby. IRB se integra de manera excelente con esta gema, as铆 que si necesitas funciones m谩s avanzadas, simplemente escribe debug en tu sesi贸n de IRB y la activar谩s.

Para saber m谩s sobre el uso de IRB, puedes visitar esta documentaci贸n y sobre la integraci贸n con debug espec铆ficamente aqu铆.


Si te ha gustado puedes pasar a saludar en los comentarios, estare atento.

Happy coding!

隆Hola a todos! 馃憢 驴Disfrutaron leyendo el art铆culo? 隆Me encantar铆a conocer sus opiniones! 馃挰 No duden en dejar un comentario abajo, ya sea para compartir sus comentarios, preguntas o simplemente saludar. 隆No es necesario registrarse, solo compartan algo valioso! 馃槉
Hey there! 馃憢 Enjoyed reading the post? I'd love to hear your thoughts! 馃挰 Feel free to drop a comment below鈥攚hether it's feedback, questions, or just saying hi. No need to sign up, just share something valuable! 馃槉