Olá @fzngagan, certamente não sou um “rubyista” e tenho muito menos experiência com Rails do que a maioria dos desenvolvedores de plugins do Discourse; mas dito isso: talvez você possa se virar com algo assim no futuro, caso precise recarregar arquivos no seu plugin sem reiniciar o aplicativo em produção (ou desenvolvimento):
after_initialize do
# altere o seguinte para o controlador de sua escolha
# ou use o Application Controller se necessário
ApplicationController.class_eval do
before_action :do_my_stuff
def do_my_stuff
load File.open(FAIZAANS_FAV_FILE)
end
end
end
Isso recarregará os arquivos conforme o esperado.
Estou usando isso atualmente em um plugin da seguinte maneira, e funciona como esperado:
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
Estou usando esse código em um plugin no qual tenho trabalhado de vez em quando, que exibe os nomes dos containers, extraídos de ENV["DATA_NAME"], e também o espaço em disco, extraído de algum código do sistema usando df e grep.
Nas nossas visualizações de administração:
Como mencionado, não sou um Rubyista de forma alguma; mas esse método funciona para mim.
Analisei o código do plugin em instance.rb e, após várias tentativas e erros, decidi seguir com o código class_eval acima. Pode não ser a maneira preferida de fazer as coisas, mas certamente funciona para mim.
Por exemplo, se eu recarregar a página após excluir muitos backups do Discourse, o indicador de espaço em disco muda conforme o esperado.
