Comment Comment by jes5199 how about: every DSL should be a thin translation layer over a clean API. Too many times I've been burned by gems that provide a DSL and there's no other way to use their functionality. parent jes5199 11 years ago