Ruby เหมาะอย่างยิ่งสำหรับการสร้าง internal DSL (Domain-Specific Language) — API ที่อ่านได้เหมือนภาษาขนาดเล็กเฉพาะทางสำหรับโดเมนหนึ่ง ไวยากรณ์ที่ยืดหยุ่นของ Ruby (วงเล็บที่เป็นทางเลือก, block), metaprogramming และ instance_eval ทำให้สามารถสร้าง DSL ที่สื่อความหมายได้ดีและอ่านง่าย นี่คือเหตุผลที่ Rails, RSpec และเครื่องมือ Ruby มากมายมี API ที่สง่างามและเป็นแบบ declarative
DSL หน้าตาเป็นอย่างไร (คุณเคยเห็นมัน)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
