واجهت هذه المشكلة قبل بضعة أسابيع وتمكنت من حلها بالطريقة التالية.
يعتمد gem mailcatcher عند كتابة هذا النص على thin-1.5.1 الذي لا يتم تثبيته بشكل صحيح.
الآن، إذا واجهت المشكلة، قم بإلغاء تثبيت gem thin. ثم، قم بتنفيذ الأمر التالي:
في الواقع، نحن سعداء جدًا بتمويل ما يصل إلى 3000 دولار لإعادة كتابة أو تفرع مشروع MailCatcher، بحيث يتم التخلص من EventMachine واستبداله بـ @ioquatixasync ومكتباته ذات الصلة. (كما نهدف إلى تمكين عمله مع Puma بدلاً من Thin).
حاليًا، لا يزال MailCatcher عالقًا على إصدار قديم من EventMachine، بينما انتقل المجتمع في الغالب إلى ما هو أبعد من استخدام هذه المكتبة.
إذا كنت مهتمًا أنت أو أي شخص آخر، فالرجاء التواصل معي عبر رسالة خاصة.
النتيجة النهائية للعمل هي:
إزالة مكتبة MailCatcher gem
إضافة مكتبة جديدة إلى Discourse
يعمل كل شيء بنفس الطريقة تمامًا كما كان من قبل من وجهة نظر المطورين
أيضًا، قبل تفرع المكتبة، أنصح بتقديم طلب دمج (PR) إلى مشروع MailCatcher لإزالة اعتمادها على EventMachine، ومناقشة الأمر مع المالك.
مرحباً! أنا مسؤول صيانة مشروع mailcatcher. لقد كنت أراقب فكرة الانتقال إلى نموذج غير متزامن (async) منذ فترة طويلة، لأن هناك عدة مشاكل هيكلية متجذرة في مكتبة eventmachine التي تعيق تطور هذا الجيم، والتي كان من شأن async حلها. بل إن هناك بالفعل فرعين تجريبيين للـ async في فرع التجربة. ومع ذلك، فقد عمل المشروع بشكل جيد بما يكفي في شكله الحالي، لذا لم يكن من المجدي الاستثمار في إعادة كتابته. غير أن التغييرات في أنظمة التشغيل وبيئة Ruby أصبحت الآن دافعاً قوياً لذلك، لذا إذا كان لدى شخص ما الوقت والقدرة على تنفيذ إعادة الهيكلة نحو async، فسأدعم هذا الجهد. يسعدني مناقشة الأمر عبر البريد الإلكتروني، أو الرسائل الخاصة، أو على GitHub.