As the other reply to you said, agreed on the DSL-construction thing. I used a fair bit of Puppet a couple of years ago and that was very much Ruby through and through. What I really liked about it was how easy it was to jump from DSL for general use cases to Ruby for specialized libraries or system Facts.