This code is a result of my learning how to write DSLs in Ruby. It's based on [Neal Ford's presentation](https://github.com/nealford/presentations/blob/master/Advanced%20DSLs%20in%20Ruby%20(Neal%20Ford\).pdf?raw=true).