Ciao @fzngagan, certamente non sono un “esperto di Ruby” e ho molta meno esperienza con Rails rispetto alla maggior parte degli sviluppatori di plugin per Discourse; ma detto questo: forse in futuro potresti cavartela con qualcosa di simile se hai bisogno di ricaricare i file nel tuo plugin senza riavviare l’applicazione in produzione (o in sviluppo):
after_initialize do
# modifica quanto segue con il controller di tua scelta
# oppure usa il controller dell'applicazione se necessario
ApplicationController.class_eval do
before_action :do_my_stuff
def do_my_stuff
load File.open(FAIZAANS_FAV_FILE)
end
end
end
Questo ricaricherà i file come previsto.
Attualmente lo sto usando in un plugin nel modo seguente e funziona come previsto:
after_initialize do
Admin::AdminController.class_eval do
before_action :do_neo_plugin_info
def do_neo_plugin_info
load File.open(PLUGIN_LOGIC)
end
end
end
Sto attualmente utilizzando questo codice in un plugin su cui sto lavorando di tanto in tanto, che visualizza i nomi dei container analizzati da ENV["DATA_NAME"] e anche lo spazio su disco analizzato da alcuni codici di sistema utilizzando df e grep.
Nelle nostre viste di amministrazione:
Come già detto, non sono affatto un esperto di Ruby; ma questo metodo funziona per me.
Ho esaminato il codice del plugin in instance.rb e dopo diversi tentativi ed errori, ho deciso di optare per il codice class_eval sopra riportato; potrebbe non essere il modo preferito di fare le cose, ma funziona sicuramente per me.
Ad esempio, se ricarico la pagina dopo aver eliminato molti backup di Discourse, l’indicatore dello spazio su disco cambia come previsto.
