A Domain Specific Language is an API that allows a developer to solve a problem or represent data more naturally than they might otherwise. The flexible nature of Ruby’s syntax and the ability to alias and alter existing methods and classes makes it conducive to creating rich DSL’s.