Ruby on Rails
روبی آن ریلز (ریل کے طور پر آسان) ایک سرور سائیڈ ویب ایپلی کیشن فریم ورک ہے جو ایم آئی ٹی لائسنس کے تحت روبی میں لکھا گیا ہے۔ ریلز ایک ماڈل ویو کنٹرولر (ایم وی سی) فریم ورک ہے، جو ڈیٹا بیس، ویب سروس اور ویب پیجز کے لیے ڈیفالٹ ڈھانچے فراہم کرتا ہے۔ یہ ڈیٹا ٹرانسفر کے لیے جے ایس او این یا ایکس ایم ایل اور یوزر انٹرفیس کے لیے ایچ ٹی ایم ایل، سی ایس ایس اور جاوا اسکرپٹ جیسے ویب معیارات کے استعمال کی حوصلہ افزائی اور سہولت فراہم کرتا ہے۔ ایم وی سی کے علاوہ، ریلز دیگر معروف سافٹ ویئر انجینئرنگ کے نمونوں اور نمونوں کے استعمال پر زور دیتا ہے، بشمول کنونشن اوور کنفیگریشن (سی او سی)، اپنے آپ کو دہرائیں نہیں (ڈی آر وائی)، اور فعال ریکارڈ پیٹرن۔ 2005 میں روبی آن ریلز کے ابھرنے نے ویب ایپ کی ترقی کو بہت متاثر کیا، جدید خصوصیات جیسے کہ ہموار ڈیٹا بیس ٹیبل تخلیق، نقل مکانی، اور تیز رفتار ایپلی کیشن ڈویلپمنٹ کو فعال کرنے کے لیے ویوز کی سہاری کے ذریعے۔ دیگر ویب فریم ورک پر روبی آن ریلز کا اثر آج بھی واضح ہے، دیگر زبانوں میں بہت سے فریم ورک اس کے خیالات کو ادھار لیتے ہیں، بشمول ازگر میں Django ؛ پرل میں اتپریرک ؛ پی ایچ پی میں لاراویل، کیک پی ایچ پی اور Yii ؛ گرووی میں گریلز ؛ ایلیکسیر میں فینکس ؛ اسکالا میں کھیلیں ؛ اور Node.js میں Sails.js۔ معروف سائٹس جو روبی آن ریلز استعمال کرتی ہیں ان میں ایئر بی این بی، کرینچ بیس، ڈرببل، گٹ ہب، ٹوچ اور شاپی فائی شامل ہیں۔ تاریخ ڈیوڈ ہینیمیئر ہینسن نے ویب ایپلی کیشن کمپنی 37 سگنلز میں پروجیکٹ مینجمنٹ ٹول بیسکیمپ پر اپنے کام سے روبی آن ریلز کو نکالا۔ ہینسن نے پہلی بار جولائی 2004 میں ریلز کو اوپن سورس کے طور پر جاری کیا، لیکن فروری 2005 تک اس منصوبے کے حقوق کا اشتراک نہیں کیا۔ اگست 2006 میں، فریم ورک ایک سنگ میل پر پہنچ گیا جب ایپل نے اعلان کیا کہ وہ روبی آن ریلز کو میک او ایس ایکس v10.5 "چیتے" کے ساتھ بھیجے گا، جو اکتوبر 2007 میں جاری کیا گیا تھا۔ ریلز ورژن 2.3 کو 15 مارچ 2009 کو جاری کیا گیا تھا، جس میں ٹیمپلیٹس، انجن، ریک اور نیسٹڈ ماڈل کی شکلوں میں بڑی نئی پیش رفت ہوئی تھی۔ ٹیمپلیٹس ڈویلپر کو اپنی مرضی کے مطابق جواہرات اور ترتیبات کے ساتھ ایک کنکال ایپلی کیشن تیار کرنے کے قابل بناتے ہیں۔ انجن ڈویلپرز کو روٹس، ویو پاتھز اور ماڈلز کے ساتھ مکمل ایپلیکیشن کے ٹکڑوں کو دوبارہ استعمال کرنے کی صلاحیت دیتے ہیں۔ ریک ویب سرور انٹرفیس اور میٹل کسی کو کوڈ کے بہتر ٹکڑے لکھنے کی اجازت دیتے ہیں جو ایکشن کنٹرولر کے ارد گرد جاتے ہیں۔ 23 دسمبر 2008 کو، ایک اور ویب ایپلی کیشن فریم ورک، مرب کا آغاز کیا گیا، اور روبی آن ریلز نے اعلان کیا کہ وہ مرب پروجیکٹ کے ساتھ مل کر "مرب کے بہترین خیالات" کو ریلز 3 میں لائے گی، جس سے دونوں برادریوں میں "غیر ضروری نقل" کا خاتمہ ہوگا۔ مرب کو ریلز 3 ریلیز کے حصے کے طور پر ریلز کے ساتھ ضم کر دیا گیا تھا۔ ریلز 3.1 کو 31 اگست 2011 کو جاری کیا گیا تھا، جس میں ریورسیبل ڈیٹا بیس مائیگریشن، ایسیٹ پائپ لائن، اسٹریمنگ، جے کوری بطور ڈیفالٹ جاوا اسکرپٹ لائبریری اور اسٹیک میں نیا متعارف کرایا گیا کافی اسکرپٹ اور ساس شامل تھے۔ ریلز 3.2 کو 20 جنوری 2012 کو تیز تر ڈویلپمنٹ موڈ اور روٹنگ انجن (جسے جرنی انجن بھی کہا جاتا ہے)، آٹومیٹک کوئری ایکسپلن اور ٹیگڈ لاگنگ کے ساتھ جاری کیا گیا تھا۔ ریلز 3.2. x آخری ورژن ہے جو روبی 1.8.7 کو سپورٹ کرتا ہے۔ ریلز 3.2.12 روبی 2 کی حمایت کرتا ہے۔ ریلز 4.0 کو 25 جون 2013 کو جاری کیا گیا تھا، جس میں روسی ڈول کیچنگ، ٹربولنکس، لائیو اسٹریمنگ کے ساتھ ساتھ ایکٹو ریسورس، ایکٹو ریکارڈ آبزرور اور دیگر اجزاء کو جواہرات کے طور پر تقسیم کرکے اختیاری بنایا گیا تھا۔ ریلز 4.1 کو 8 اپریل 2014 کو جاری کیا گیا تھا، جس میں اسپرنگ، متغیرات، اینمز، میلر پیش نظارہ، اور secrets.yml متعارف کرایا گیا تھا۔ ریلز 4.2 کو 19 دسمبر 2014 کو جاری کیا گیا تھا، جس میں ایکٹو جاب، اسنکرونس ای میلز، کافی ریکارڈ، ویب کنسول، اور غیر ملکی چابیاں متعارف کرائی گئیں۔ ریلز 5.0 کو 30 جون 2016 کو جاری کیا گیا تھا، جس میں ایکشن کیبل، اے پی آئی موڈ، اور ٹربولنکس 5 متعارف کرایا گیا تھا۔ ریلز 5.0.0.1 کو 10 اگست 2016 کو ریلز CLI اوور ریک کے خصوصی استعمال اور روبی ورژن 2.2 اور اس سے اوپر کے لیے سپورٹ کے ساتھ جاری کیا گیا تھا۔ ریلز 5.1 کو 27 اپریل 2017 کو جاری کیا گیا تھا، جس میں جاوا اسکرپٹ انضمام کی تبدیلیاں (دھاگے کے ذریعے این پی ایم سے جاوا اسکرپٹ انحصار کا انتظام، ویب پیک کا استعمال کرتے ہوئے جاوا اسکرپٹ کی اختیاری تالیف، اور جے کیوری پر انحصار کرنے کے بجائے ونیلا جاوا اسکرپٹ استعمال کرنے کے لیے ریلز یو جے ایس کی دوبارہ تحریر)، کیپبرا کا استعمال کرتے ہوئے سسٹم ٹیسٹ، خفیہ کردہ راز، پیرامیٹرائزڈ میلرز، براہ راست اور حل شدہ راستے، اور مددگاروں کے لیے فارم ٹیگ/فارم کی جگہ مددگار کے ساتھ ایک متحد فارم۔ ریلز 5.2 کو 9 اپریل 2018 کو جاری کیا گیا تھا، جس میں نئی خصوصیات متعارف کرائی گئیں جن میں ایکٹو اسٹوریج، بلٹ ان ریڈس کیش اسٹور، اپ ڈیٹڈ ریلز کریڈینشلز اور ایک نیا ڈی ایس ایل شامل ہیں جو کسی ایپلی کیشن کے لیے مواد کی حفاظتی پالیسی کو ترتیب دینے کی اجازت دیتا ہے۔ ریلز 5.2 کو 4 دسمبر 2018 کو جاری کیا گیا تھا، جس میں متعدد بگ فکسس اور متعدد منطق کی بہتری متعارف کرائی گئی تھی۔ ریلز 6.0 کو 16 اگست 2019 کو جاری کیا گیا تھا، جس نے ویب پیک کو ڈیفالٹ بنا دیا، میل باکس روٹنگ، ایک ڈیفالٹ آن لائن رچ ٹیکسٹ ایڈیٹر، متوازی جانچ، ایک سے زیادہ ڈیٹا بیس سپورٹ، میلر روٹنگ اور ایک نیا آٹو لوڈر شامل کیا۔ ریلز 6.1 کو 9 دسمبر 2020 کو جاری کیا گیا تھا، جس میں فی ڈیٹا بیس کنکشن سوئچنگ، افقی ڈیٹا بیس شارڈنگ، تمام ایسوسی ایشنز کی بے چین لوڈنگ، سنگل ٹیبل وراثت کے متبادل کے طور پر ڈیلیگیٹڈ ٹائپز، ایسوسی ایشنز، ایرر آبجیکٹز، اور دیگر بہتریوں اور بگ فکسز کو شامل کیا گیا تھا۔ ریلز 7.0 کو 15 دسمبر 2021 کو جاری کیا گیا تھا، جس نے Node.js اور ویب پیک کو جاوا اسکرپٹ مینجمنٹ کے لیے درآمدی نقشوں کے ساتھ ڈیفالٹ طور پر تبدیل کیا، ٹربولنکس کو ٹربو اور محرک کے امتزاج سے تبدیل کیا، ایکٹیو ریکارڈ میں کام پر خفیہ کاری شامل کی، زیٹ ورک کو خصوصی طور پر کوڈ لوڈنگ کے لیے استعمال کیا، اور بہت کچھ۔ ریلز 1 کو 5 اکتوبر 2023 کو جاری کیا گیا تھا، آپ کی درخواست کو تعینات کرنے، تصدیق میں بہتری، اور اب بن کے لیے سپورٹ سمیت کمال کا استعمال کرتے ہوئے ڈاکر فائلز سپورٹ۔ تکنیکی جائزہ روبی آن ریلز ریلیز سے لے کر ریلیز تک نئی ٹیکنالوجیز کے استعمال کی تلاش اور انٹرنیٹ پر نئے معیارات کو اپنانے کے لیے یکسر تیار ہوتی ہے۔ روبی آن ریلز میں کچھ خصوصیات بہت مستحکم ہیں جبکہ کچھ کو نئی تکنیکوں کے حق میں تبدیل کیا گیا ہے۔ ماڈل ویو کنٹرولر پیٹرن ماڈل ویو کنٹرولر (ایم وی سی) پیٹرن ایپلیکیشن پروگرامنگ کو منظم کرنے کے لیے بنیادی ڈھانچہ ہے۔ ڈیفالٹ کنفیگریشن میں، روبی آن ریلز فریم ورک میں ایک ماڈل ڈیٹا بیس میں موجود ٹیبل اور روبی فائل کا نقشہ بناتا ہے۔ مثال کے طور پر، ایک ماڈل کلاس صارف کو عام طور پر ایپ/ماڈل ڈائرکٹری میں فائل 'user.rb' میں بیان کیا جائے گا، اور ڈیٹا بیس میں ٹیبل 'صارفین' سے منسلک کیا جائے گا۔ اگرچہ ڈویلپرز اس کنونشن کو نظر انداز کرنے اور اپنے ماڈلز، فائلوں اور ڈیٹا بیس ٹیبل کے لیے مختلف ناموں کا انتخاب کرنے کے لیے آزاد ہیں، لیکن یہ عام عمل نہیں ہے اور عام طور پر "کنونشن اوور کنفیگریشن" فلسفے کے مطابق اس کی حوصلہ شکنی کی جاتی ہے۔ کنٹرولر ریلز کا ایک سرور سائیڈ جزو ہے جو ویب سرور سے ایپلی کیشن کی بیرونی درخواستوں کا جواب دیتا ہے، اس بات کا تعین کرکے کہ کون سی ویو فائل کو پیش کرنا ہے۔ کنٹرولر کو معلومات کے لیے ایک یا زیادہ ماڈلز سے استفسار کرنا پڑ سکتا ہے اور انہیں ویو پر منتقل کرنا پڑ سکتا ہے۔ مثال کے طور پر، ایئر لائن ریزرویشن سسٹم میں، فلائٹ سرچ فنکشن کو نافذ کرنے والے کنٹرولر کو تلاش سے مماثل پروازیں تلاش کرنے کے لیے انفرادی پروازوں کی نمائندگی کرنے والے ماڈل سے استفسار کرنے کی ضرورت ہوگی، اور متعلقہ ثانوی ڈیٹا تلاش کرنے کے لیے ہوائی اڈوں اور ایئر لائنز کی نمائندگی کرنے والے ماڈلز سے استفسار کرنے کی بھی ضرورت پڑ سکتی ہے۔ اس کے بعد کنٹرولر فلائٹ ڈیٹا کے کچھ ذیلی سیٹ کو متعلقہ ویو پر منتقل کر سکتا ہے، جس میں جامد ایچ ٹی ایم ایل اور منطق کا مرکب ہوگا جو فلائٹ ڈیٹا کا استعمال کرتے ہوئے ایک ایچ ٹی ایم ایل دستاویز تیار کرتا ہے جس میں ایک ٹیبل ہوتا ہے جس میں فی پرواز ایک قطار ہوتی ہے۔ ایک کنٹرولر ایک یا زیادہ اقدامات فراہم کر سکتا ہے۔ روبی آن ریلز میں، ایک ایکشن عام طور پر ایک بنیادی یونٹ ہوتا ہے جو بیان کرتا ہے کہ کسی مخصوص بیرونی ویب براؤزر کی درخواست کا جواب کیسے دیا جائے۔ نیز، نوٹ کریں کہ کنٹرولر/ایکشن بیرونی ویب درخواستوں کے لیے صرف اس صورت میں قابل رسائی ہوگا جب اس سے متعلقہ روٹ کا نقشہ بنایا جائے۔ ریلز ڈویلپرز کو ریسٹ فل روٹس استعمال کرنے کی ترغیب دیتی ہے، جس میں تخلیق، نیا، ترمیم، اپ ڈیٹ، تباہ، دکھانا اور انڈیکس جیسے اقدامات شامل ہیں۔ کنٹرولر ایکشنز کے لیے آنے والی درخواستوں/راستوں کی یہ نقشہ سازی آسانی سے routes.rb کنفیگریشن فائل میں ترتیب دی جا سکتی ہے۔ ریلز کی ڈیفالٹ ترتیب میں ایک ویو ایک ایرب فائل ہے، جس کا جائزہ لیا جاتا ہے اور رن ٹائم پر ایچ ٹی ایم ایل میں تبدیل کیا جاتا ہے۔ متبادل طور پر، نظاروں کے لیے بہت سے دوسرے ٹیمپلیٹنگ سسٹم استعمال کیے جا سکتے ہیں۔ روبی آن ریلز میں ایسے ٹولز شامل ہیں جو عام ترقیاتی کاموں کو "آؤٹ آف دی باکس" آسان بناتے ہیں، جیسے کہ اسکیفولڈنگ جو بنیادی ویب سائٹ کے لیے درکار کچھ ماڈلز اور ویوز کو خود بخود تشکیل دے سکتی ہے۔ اس کے علاوہ ویبریک، ایک سادہ روبی ویب سرور جو روبی کے ساتھ تقسیم کیا جاتا ہے، اور ریک، ایک بلڈ سسٹم، جو منی کے طور پر تقسیم کیا جاتا ہے، بھی شامل ہیں۔ روبی آن ریلز کے ساتھ مل کر، یہ ٹولز ایک بنیادی ترقیاتی ماحول فراہم کرتے ہیں۔ HTTP سرورز روبی آن ریلز عام طور پر براہ راست انٹرنیٹ سے منسلک نہیں ہوتا ہے، بلکہ کچھ فرنٹ اینڈ ویب سرور کے ذریعے ہوتا ہے۔ ابتدائی دنوں میں مونگرل کو عام طور پر ویبریک پر ترجیح دی جاتی تھی، لیکن یہ لائٹ ٹی پی ڈی، اپاچی، چیروکی، ہیواتھا، نگنکس (یا تو ایک ماڈیول کے طور پر-مثال کے طور پر فیوژن مسافر-یا سی جی آئی، فاسٹ سی جی آئی یا موڈ روبی کے ذریعے)، اور بہت سے دوسرے پر بھی چل سکتا ہے۔ 2008 کے بعد سے، مسافر نے مونگرل کی جگہ روبی آن ریلز کے لیے سب سے زیادہ استعمال ہونے والے ویب سرور کے طور پر لے لی۔ روبی کو مقامی طور پر آئی بی ایم پر بھی سپورٹ کیا جاتا ہے یعنی جاوا اسکرپٹ روبی آن ریلز جاوا اسکرپٹ لائبریریوں کے پروٹوٹائپ اور ایجیکس ایکشنز کو اسکرپٹ کرنے کے لیے Script.aculo.us کے وسیع استعمال کے لیے بھی قابل ذکر ہے۔ روبی آن ریلز نے ابتدائی طور پر ویب خدمات کے لیے ہلکے وزن والے ایس او اے پی کا استعمال کیا۔ بعد میں اس کی جگہ ریسٹ فل ویب سروسز نے لے لی۔ روبی آن ریلز 3 صفحہ کے مارک اپ (جو صفحہ کے ڈھانچے کی وضاحت کرتا ہے) کو اسکرپٹنگ (جو صفحہ کی فعالیت یا منطق کا تعین کرتا ہے) سے الگ کرتا ہے۔ ویب سروسز ورژن 2 کے بعد سے، روبی آن ریلز ایچ ٹی ایم ایل اور ایکس ایم ایل دونوں کو معیاری آؤٹ پٹ فارمیٹس کے طور پر پیش کرتا ہے۔ مؤخر الذکر ریسٹ فل ویب سروسز کی سہولت ہے۔ سی ایس ایس ریلز 3.1 نے ساس کو معیاری سی ایس ایس ٹیمپلیٹنگ کے طور پر متعارف کرایا۔ ٹیمپلیٹ ڈیفالٹ طور پر، سرور ایچ ٹی ایم ایل ویوز میں ایمبیڈڈ روبی کا استعمال کرتا ہے، جس میں html.erb ایکسٹینشن والی فائلیں ہوتی ہیں۔ ریلز متبادل ٹیمپلیٹنگ زبانوں جیسے کہ ایچ اے ایم ایل اور مونچھیں کے تبادلے کی حمایت کرتی ہے۔ روبی ورژنز روبی آن ریلز 3.0 کو روبی 1.8.7، روبی 1.9.2، اور جے روبی 1.5.2 + کے ساتھ کام کرنے کے لیے ڈیزائن کیا گیا ہے۔ پہلے کے ورژن سپورٹ نہیں ہیں۔ روبی آن ریلز 3 ریلیزز کی آخری سیریز ہے جو روبی 1.8.7 کو سپورٹ کرتی ہے۔ فریم ورک ڈھانچہ روبی آن ریلز کو مختلف پیکجوں میں تقسیم کیا گیا ہے، یعنی ایکٹو ریکارڈ (ڈیٹا بیس تک رسائی کے لیے ایک آبجیکٹ ریلیشنل میپنگ سسٹم)، ایکشن پیک، ایکٹو سپورٹ اور ایکشن میلر۔ ورژن 2 سے پہلے، روبی آن ریلز میں ایکشن ویب سروس پیکیج بھی شامل تھا جسے اب ایکٹو ریسورس نے تبدیل کر دیا ہے۔ معیاری پیکجوں کے علاوہ، ڈویلپرز موجودہ پیکجوں کو بڑھانے کے لیے پلگ ان بنا سکتے ہیں۔ اس سے پہلے کے ریلز نے اپنے کسٹم فریم ورک کے اندر پلگ ان کی حمایت کی تھی۔ ورژن 3.2 ان کو معیاری روبی "جیمز" کے حق میں مسترد کرتا ہے۔ ریل پر روبی کی تعیناتی اکثر روبی جیمز کا استعمال کرتے ہوئے انسٹال کی جاتی ہے، جو ایک پیکیج مینیجر ہے جو روبی کے موجودہ ورژن کے ساتھ شامل ہے۔ بہت سے مفت یونکس جیسے سسٹم بھی اپنے مقامی پیکیج مینجمنٹ سسٹم کے ذریعے روبی آن ریلز اور اس کے انحصار کی تنصیب کی حمایت کرتے ہیں۔ روبی آن ریلز کو عام طور پر ڈیٹا بیس سرور جیسے مائی ایس کیو ایل یا پوسٹگری ایس کیو ایل کے ساتھ تعینات کیا جاتا ہے، اور ایک ویب سرور جیسے اپاچی فیوژن مسافر ماڈیول چلاتا ہے۔ فلسفہ اور ڈیزائن روبی آن ریلز کا مقصد کنونشن اوور کنفیگریشن (سی او سی)، اور ڈونٹ ریپیٹ یور سیلف (ڈی آر وائی) اصول پر زور دینا ہے۔ ریلز کا نظریہ ایک پائیدار فعال کرنے والا ہے جو روبی آن ریلز فریم ورک کے فلسفے، ڈیزائن اور نفاذ کی رہنمائی کرتا ہے۔ "کنونشن اوور کنفیگریشن" کا مطلب ہے کہ ڈویلپر کو صرف ایپلی کیشن کے غیر روایتی پہلوؤں کی وضاحت کرنے کی ضرورت ہے۔ مثال کے طور پر، اگر ماڈل میں کلاس سیل ہے، تو ڈیٹا بیس میں متعلقہ ٹیبل کو ڈیفالٹ طور پر سیلز کہا جاتا ہے۔ یہ صرف اس صورت میں ہے جب کوئی اس کنونشن سے ہٹ جاتا ہے، جیسے کہ ٹیبل کو "فروخت شدہ مصنوعات" کہنا، کہ ڈویلپر کو ان ناموں کے حوالے سے کوڈ لکھنے کی ضرورت ہے۔ عام طور پر، روبی آن ریلز کنونشن کم کوڈ اور کم تکرار کا باعث بنتے ہیں۔ "اپنے آپ کو دہرائیں نہیں" کا مطلب ہے کہ معلومات ایک ہی، غیر واضح جگہ پر واقع ہے۔ مثال کے طور پر، ریلز کے ایکٹو ریکارڈ ماڈیول کا استعمال کرتے ہوئے، ڈویلپر کو کلاس کی تعریفوں میں ڈیٹا بیس کالم کے ناموں کی وضاحت کرنے کی ضرورت نہیں ہے۔ اس کے بجائے، روبی آن ریلز اس معلومات کو کلاس کے نام کی بنیاد پر ڈیٹا بیس سے حاصل کر سکتی ہے۔ "موٹے ماڈلز، پتلی کنٹرولرز" کا مطلب ہے کہ زیادہ تر ایپلیکیشن منطق کو ماڈل کے اندر رکھا جانا چاہیے جبکہ کنٹرولر کو زیادہ سے زیادہ ہلکا چھوڑنا چاہیے۔ ایچ ٹی ایم ایل اوور دی وائر (ہاٹ وائر)، تصوراتی کمپریشن، اور مضبوط حفاظتی نشان ریلز 7 کا ون پرسن فریم ورک کے لیے نقطہ نظر۔ ٹریڈ مارک مارچ 2007 میں، ڈیوڈ ہینمیئر ہینسن نے یو ایس پی ٹی او کے ساتھ ریل سے متعلق ٹریڈ مارک پر تین روبی رجسٹر کرنے کے لیے درخواست دی۔ ان ایپلی کیشنز کا تعلق "روبی آن ریلز"، لفظ "ریلز"، اور سرکاری ریلز لوگو سے ہے۔ 2007 کے موسم گرما میں، ہینسن نے پبلشر ایپریس کو روبی آن ریلز کے لوگو کو روبی آن ریلز کی ایک نئی کتاب کے سرورق پر استعمال کرنے کی اجازت دینے سے انکار کر دیا جو کچھ مستند کمیونٹی ممبران نے لکھی تھی۔ اس واقعہ نے روبی آن ریلز کمیونٹی میں ایک شائستہ احتجاج کو جنم دیا۔ اس تنقید کے جواب میں، ہینسن نے جواب دیا: میں صرف ان مصنوعات کے پروموشنل استعمال کی اجازت دیتا ہوں جن سے میں براہ راست وابستہ ہوں۔ ایسی کتابیں جن کے لیے میں ترقیاتی عمل کا حصہ رہا ہوں یا کانفرنسوں میں جن پر عمل درآمد میں میری رائے ہے۔ میں یقینی طور پر ریلز کے تمام ٹریڈ مارک کو نافذ کرنے کی کوشش کروں گا۔ لوگو کا ٹریڈ مارک 25 اکتوبر 2019 کو منسوخ کر دیا گیا تھا۔ استقبالیہ اسکیل ایبلٹی ابتدائی دنوں میں، میٹز کے روبی انٹرپریٹر (روبی کے لیے ڈی فیکٹو ریفرنس انٹرپریٹر) پر چلنے والی ریلز کو اسکیل ایبلٹی کے مسائل کے لیے تنقید کا نشانہ بنایا گیا تھا۔ ان ناقدین نے اکثر 2007 اور 2008 میں ٹویٹر کی مختلف بندشوں کا ذکر کیا، جس نے ٹویٹر کو ان کے قطار کے نظام اور دیگر مڈل ویئر کے لیے اسکالا (جو جاوا ورچوئل مشین پر چلتا ہے) میں جزوی منتقلی کی ترغیب دی۔ سائٹ کے یوزر انٹرفیس پہلوؤں نے 2011 تک روبی آن ریلز کو چلانا جاری رکھا جب اسے کارکردگی پر خدشات کی وجہ سے تبدیل کر دیا گیا۔ دوسری طرف، بہت سے ریلز بزنس ایپلی کیشن ڈویلپرز نے اسکیل ایبلٹی کے مسائل سے نمٹنے کے لیے سسٹم آرکیٹیکچر ڈیزائن پر انحصار کیا، جس میں ڈیٹا بیس انجن، کیش کنفیگریشن، اور سرورز کے انتخاب شامل ہیں۔ ریلز کے اصل مصنف ڈیوڈ ہینیمیئر ہینسن نے ٹویٹر پر تنقید کرتے ہوئے کہا کہ ان کے مسائل اسکیلنگ ان کے اپنے ناقص تعمیراتی فیصلوں کے نتائج تھے نہ کہ ریلز کی غلطی۔ ہینسن کے مطابق، فریم ورک میں کوئی حصہ نہ ڈالتے ہوئے ریلز کو ان کی پریشانیوں کا ذمہ دار ٹھہرانا ناشکرے اور غیر منصفانہ ہے۔ 2011 میں، گارٹنر ریسرچ نے نوٹ کیا کہ جاوا سے تنقید اور موازنہ کے باوجود، بہت سی ہائی پروفائل کنزیومر ویب فرمیں قابل توسیع ویب ایپلی کیشنز بنانے کے لیے روبی آن ریلز کا استعمال کر رہی ہیں۔ روبی آن ریلز چلانے والی کچھ سب سے بڑی سائٹس میں ایئر بی این بی، کک پیڈ، گٹ ہب، گٹ لیب، سکریبڈ، شاپیفائی اور بیسکیمپ شامل ہیں۔ جنوری 2016 تک، یہ اندازہ لگایا گیا ہے کہ 12 لاکھ سے زیادہ ویب سائٹیں روبی آن ریلز چلا رہی ہیں۔ سیکیورٹی مارچ 2012 میں، سیکیورٹی کے محقق ایگور ہوماکوف نے ایک بڑے پیمانے پر تفویض کی کمزوری دریافت کی جس نے کچھ ریلز ایپلی کیشنز کو دور سے استحصال کرنے کی اجازت دی، اور ذمہ دار انکشافات کی ان کی سابقہ کوششوں کو مسترد کرنے کے بعد گٹ ہب کو غیر بدنیتی سے ہیک کرکے اس کا مظاہرہ کیا۔ 24 ستمبر 2013 کو روبی آن ریلز میں سیشن کوکی کے تسلسل کی حفاظتی خامی کی اطلاع دی گئی تھی۔ ڈیفالٹ کنفیگریشن میں، پورا سیشن ہیش ایک سیشن کوکی کے اندر محفوظ کیا جاتا ہے جسے کوکی اسٹور کہا جاتا ہے، جس سے سیشن کوکی رکھنے والے کسی بھی تصدیق شدہ سیشن کو مستقبل میں کسی بھی وقت ہدف صارف کے طور پر لاگ ان کرنے کی اجازت ملتی ہے۔ حل کے طور پر، منتظمین کو مشورہ دیا جاتا ہے کہ وہ کوکیز کو سرور پر محفوظ کرنے کے لیے ایکٹو ریکارڈ اسٹور جیسے میکانزم کا استعمال کرتے ہوئے ترتیب دیں۔ محققین ڈینیئل جیکسن اور جوزف نیئر نے ایک ڈیٹا ڈیبگر تیار کیا جسے انہوں نے "اسپیس" کہا جو ریلز پروگرام کے ڈیٹا تک رسائی کا تجزیہ کر سکتا ہے اور اس بات کا تعین کر سکتا ہے کہ آیا پروگرام رسائی کی پابندیوں سے متعلق اصولوں پر مناسب طریقے سے عمل کرتا ہے یا نہیں۔ 15 اپریل، 2016 کو، نیئر نے اطلاع دی کہ اسپیس کا استعمال کرتے ہوئے 50 مقبول ویب ایپلی کیشنز کے تجزیے سے پہلے سے نامعلوم 23 حفاظتی خامیاں سامنے آئیں۔ نوٹ حوالہ جات ببلیوگرافی بیرونی لنکس گائیڈز اے پی آئی 2004 سافٹ ویئر مفت کمپیوٹر لائبریریاں ایم آئی ٹی لائسنس ویب 2 ویب فریم ورک کا استعمال کرتے ہوئے روبی سافٹ ویئر میں پروگرام کردہ مفت سافٹ ویئر