إن إضافة Custom Wizard تنشئ تطبيق Ember خاص بها وتستعير بعض الأصول من جوهر Discourse.
ولهذا الغرض، نستخدم ملفًا جافاسكريبتًا يُسمى wizard-custom.js يحتوي على تعليمات Sprockets تستهدف ملفات فردية.
في بعض الحالات، نحتاج إلى عدد كبير من الملفات من نفس المجلد، وكنا نميل إلى استخدام require_tree لفترة طويلة، لكن للأسف، هذا غير ممكن للأسباب التالية:
- يقع ملف
wizard-custom.jsداخل الإضافة، لذا فإنمسار التحميلالخاص به يختلف عن مسار تحميل Discourse، ولا يمكننا إلا استدعاء الملفات الموجودة داخلمسار التحميل. - لا تسمح Sprockets باستخدام المسارات المطلقة عند استخدام
require_tree.
حل هذه المشكلة يعني أيضًا أن الإضافة ستتعطل بشكل أقل بسبب التغييرات في جوهر Discourse.
للتخفيف من ذلك، قمنا بإنشاء توجيه مخصص لـ Sprockets يُسمى require_tree_discourse يبحث تحديدًا عن الأصول داخل مجلد Discourse باستخدام مسارات مطلقة. إليك رابط طلب الدمج (PR) الذي يحتوي على هذا الكود:
اعتقدنا أن الأمر سيكون مثيرًا للاهتمام لمطوري Discourse ومطوري Rails بشكل عام.