> my impression is that the DSL is so extensive you might as well be writing something that's not Ruby.
This is just how Ruby is. It's designed around the idea of building DSLs, so writing in Ruby is almost always an exercise in writing in one DSL or another.