Ruby er usædvanlig velegnet til at opbygge interne DSL'er (Domain-Specific Languages) — API'er, der læses som et specialiseret mini-sprog for et domæne. Rubys fleksible syntaks (valgfri parenteser, blokke), metaprogrammering og instance_eval gør det muligt at skabe udtryksfulde, læsbare DSL'er. Dette er grunden til, at Rails, RSpec og mange Ruby-værktøjer har så elegante, deklarative API'er.
Sådan ser en DSL ud (du har set dem)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
