Ruby yra išskirtinai tinkama vidinių DSL (Domain-Specific Languages) kūrimui — API, kurie skaitomi kaip specializuota mini-kalba tam tikrai sritiai. Ruby langi sintaksė (neprivalomi skliaustai, blokai), metaprogramavimas ir instance_eval daro įmanoma sukurti išraiškingus, skaitytinus DSL. Todėl Rails, RSpec ir daugelis Ruby įrankių turi tokias elegantiškas, deklaratyvias API.
Kaip atrodo DSL (tu jau juos matei)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
