Writing DSL for DSL: Catch Code as It’s Born with TracePoint

Let’s dive into an unconventional use of Ruby’s TracePoint API, not for performance profiling, but for runtime introspection in metaprogramming-heavy Ruby code.

We’ll focus on real-world use case of writing DSLs for use with existing DSLs, exploring how TracePoint enables us to untangle messy results of metaprogramming techniques and do things like dynamic linking logic to DSL-generated methods.

Expect a blend of advanced Ruby techniques, practical insights, and a fresh perspective on a lesser-known Ruby API.

  • Andrey Nᴏᴠɪᴋᴏᴠ
    Andrey Nᴏᴠɪᴋᴏᴠ

    Backend Engineer at Evil Martians

    Software developer with a passion for building and deploying solid Ruby applications that, you know, actually work in production.

    I love to use and build open source software: have authored multiple Ruby gems, tutorials and examples, a contributor to various libraries and tools, and a speaker and habitue of Ruby conferences.

    I currently live in Osaka, Japan with my family and enjoy driving all over Japan.