Ruby es excepcionalmente adecuado para construir DSLs internos (Lenguajes Específicos de Dominio) — APIs que se leen como un mini-lenguaje especializado para un dominio. La sintaxis flexible de Ruby (paréntesis opcionales, bloques), metaprogramación e instance_eval hacen posible crear DSLs expresivos y legibles. Por eso Rails, RSpec y muchas herramientas Ruby tienen APIs tan elegantes y declarativas.
Cómo se ve un DSL (ya los has visto)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
