Ruby është jashtëzakonisht i përshtatshëm për ndërtimin e DSL-të të brendshme (Gjuhë të Posaçme për Domenën) — API-et që lexohen si një mini-gjuhë e specializuar për një domenë. Sintaksa fleksibël e Ruby-it (kllapat opsionale, blloqet), metaprogramimi, dhe instance_eval e bëjnë të mundur të krijohen DSL-të shprehëse dhe të lexueshme. Kjo është arsyeja pse Rails, RSpec, dhe shumë mjete Ruby kanë API-e kaq elegante dhe deklarative.
Si duket një DSL (i ke parë)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
