Il plugin Custom Wizard crea la propria app Ember e prende in prestito alcune risorse dal nucleo di Discourse.
Per questo motivo, utilizziamo un file JS chiamato wizard-custom.js con direttive Sprockets che puntano a file specifici.
In alcuni casi, avevamo bisogno di molti file dalla stessa cartella ed eravamo tentati di usare require_tree per molto tempo, ma purtroppo ciò non è possibile per i seguenti motivi:
- Il file
wizard-custom.jssi trova all’interno del plugin, quindi il suoload pathè diverso da quello di Discourse e possiamo richiedere solo file all’interno delload path. - Sprockets non consente percorsi assoluti quando si utilizza
require_tree.
Risolvere questo problema significherebbe anche che il plugin si interrompe meno frequentemente a causa di modifiche nel nucleo di Discourse.
Per mitigare ciò, abbiamo creato una direttiva Sprockets personalizzata chiamata require_tree_discourse che cerca specificamente le risorse all’interno della cartella Discourse utilizzando percorsi assoluti. Ecco la PR che contiene quel codice.
Pensavamo che sarebbe stato interessante per gli sviluppatori di Discourse e in generale per gli sviluppatori Rails.