Ruby cực kỳ phù hợp để xây dựng internal DSL (Domain-Specific Language — ngôn ngữ chuyên biệt theo lĩnh vực) — các API đọc như một ngôn ngữ mini chuyên biệt cho một lĩnh vực. Cú pháp linh hoạt của Ruby (dấu ngoặc tùy chọn, block), metaprogramming, và instance_eval làm cho việc tạo các DSL biểu đạt, dễ đọc trở nên khả thi. Đây là lý do Rails, RSpec, và nhiều công cụ Ruby có các API thanh lịch, khai báo đến vậy.
Một DSL trông như thế nào (bạn đã thấy chúng)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
