Metaprogramming is code writing code. Usually metaprogramming in Ruby is done using the reflection features of the language: define_method, instance_variable_get, and others. In this post you will see another way to do metaprogramming that has some advantages over the traditional approach.

Ruby s-expressions are data representing code. In this post you will see the structure of s-expressions for language features supported by Ruby interpreters and the InfraRuby statically typed Ruby compiler.

In this post you will see how to generate an HTML generator using the meta-ruby gem. Our HTML generator will be similar to Markaby, a Ruby library to generate HTML in which the document structure is expressed in Ruby source code.