Ruby je iznimno prikladan za gradnju internog DSL-a (domenski specifičnih jezika) — API-ja koji izgledaju kao specijalizirani mini-jezik za domenu. Fleksibilna sintaksa Ruby-ja (izborni zagradi, blokovi), metaprogramiranje i instance_eval čine moguće stvaranje ekspresivnog, čitljivog DSL-a. To je razlog zašto Rails, RSpec i mnogi Ruby alati imaju tako elegantne, deklarativne API-je.
Kako DSL izgleda (već ste ih vidjeli)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
