Ruby er eksepsjonelt egnet til å bygge interne DSL-er (Domain-Specific Languages) — API-er som leses som et spesialisert mini-språk for et domene. Rubys fleksible syntaks (valgfrie parenteser, blokker), metaprogrammering og instance_eval gjør det mulig å lage uttrykksfulle, lesbare DSL-er. Dette er grunnen til at Rails, RSpec og mange Ruby-verktøy har såpass elegante, deklarative API-er.
Hvordan en DSL ser ut (du har sett dem)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
