Ruby är exceptionellt väl lämpat för att bygga interna DSL:er (Domain-Specific Languages) — API:er som läses som ett specialiserat mini-språk för en domän. Rubys flexibla syntax (valfria parenteser, block), metaprogrammering och instance_eval gör det möjligt att skapa uttrycksfulla, läsbara DSL:er. Det är därför Rails, RSpec och många Ruby-verktyg har sådan eleganta, deklarativa API:er.
Hur en DSL ser ut (du har sett dem)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
