Plugin Discourse e configurazione Rails 6 config/initializers Domanda

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.