Salut @fzngagan, je ne suis certainement pas un « Rubyiste » et j’ai beaucoup moins d’expérience avec Rails que la plupart des développeurs de plugins Discourse ; mais cela dit : peut-être pourrez-vous vous en sortir avec quelque chose comme ceci à l’avenir si vous avez besoin de recharger des fichiers dans votre plugin sans redémarrer l’application en production (ou en développement) :
after_initialize do
# modifiez le suivant pour choisir votre contrôleur
# ou utilisez le contrôleur d'application si nécessaire
ApplicationController.class_eval do
before_action :do_my_stuff
def do_my_stuff
load File.open(FAIZAANS_FAV_FILE)
end
end
end
Cela permettra de recharger les fichiers comme prévu.
J’utilise actuellement cela dans un plugin de la manière suivante, et cela fonctionne comme prévu :
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
J’utilise actuellement ce code dans un plugin sur lequel je travaille de temps en temps, qui affiche les noms des conteneurs extraits de ENV["DATA_NAME"] ainsi que l’espace disque extrait d’un code système utilisant df et grep.
Dans nos vues d’administration :
Comme mentionné, je ne suis pas du tout Rubyiste ; mais cette méthode fonctionne pour moi.
J’ai examiné le code du plugin dans instance.rb et, après plusieurs essais et erreurs, j’ai décidé d’utiliser le code class_eval ci-dessus. Ce n’est peut-être pas la méthode préférée, mais cela fonctionne certainement pour moi.
Par exemple, si je recharge la page après avoir supprimé beaucoup de sauvegardes Discourse, l’indicateur d’espace disque change comme prévu.
