Schedule

Back
Genadi Samokovarov
Genadi Samokovarov
@gsamokovarov

Genadi is a Ruby developer from Sofia, Bulgaria and the maintainer of the web-console gem. Works for Rhyme (https://rhyme.com) where he takes part in changing the way in-person and online trainings are held.

Implementing Web Console

Web Console is a debugging tool bundled with Rails. The most popular feature is a console that is shown in every development error, however, it is a general purpose debugging tool that let you execute Ruby code in any binding as it runs, through its web UI.

In this talk, we'll take a look at how the web-console gem is implemented. This includes a deep dive into how exceptions in Ruby work; how to build Ruby bindings for every part of an exception backtrace, so we can execute code in them; how we interact with the DebugInspector and TracePoint C APIs to make this possible and how we supported alternative Ruby implementations like JRuby.