Ruby internal DSLs (Domain-Specific Languages) بنانے کے لیے بہترین طریقے سے موزوں ہے — ایسے APIs جو کسی ڈومین کے لیے ایک خاصیت کے ساتھ مختص mini-language کی طرح پڑھتے ہیں۔ Ruby کی لچکدار syntax (اختیاری قوسین، blocks)، metaprogramming، اور instance_eval expressive، قابل فہم DSLs بنانا ممکن بناتے ہیں۔ یہی وجہ ہے کہ Rails، RSpec، اور بہت سے Ruby ٹولز میں اتنی خوبصورت، declarative APIs ہیں۔
ایک DSL کی شکل (آپ نے انہیں دیکھا ہے)
describe
it
expect(user).to be_valid
.application.routes.draw
resources
get ,
gem ,
