Ruby ხელსაყრელია შინაგანი DSL-ების (Domain-Specific Languages) აგებისთვის — API-ებისთვის, რომლებიც კითხულობენ სპეციალიზებული მინი-ენის ენად კონკრეტული დომენისთვის. Ruby-ის მოქნილი სინტაქსი (სურვილისამებრ ფრჩხალები, blocks), მეტაპროგრამირება და instance_eval ის დახმარებით შესაძლებელია გამომსახველი, წაკითხვადი DSL-ების შექმნა. ეს არის მიზეზი, თუ რატომ აქვთ Rails-ს, RSpec-ს და ბევრ Ruby ინსტრუმენტს ასეთი ელეგანტური, დეკლარატიული API-ები.
როგორ გამოიყურება DSL (თქვენ უკვე ნახეთ)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
