Ainda estou tentando analisar plugins. Eu estava procurando sobrescrever o TopicsController em meus estudos e pesquisei no repositório de código do Discourse, onde notei o reloadable_patch.
Em seguida, pesquisei por reloadable_patch no Discourse e obtive 12 resultados de código:
Então, decidi olhar de forma mais ampla para tentar entender esse fascinante “método / hook (?)”. Para isso:
Pesquisei em todo o GitHub:
– Todos os resultados parecem estar relacionados ao Discourse (plugins)
Pesquisei na web:
– Todos os resultados parecem estar relacionados ao Discourse (plugins)
Pesquisei no Meta:
– Obtive alguns resultados, mas nada que explicasse o reloadable_patch (internamente) em detalhes.
Na sequência, pesquisei novamente no repositório do Discourse e não consegui encontrar (deve ser porque ainda não tenho experiência nisso) a “definição” do que, exatamente, o reloadable_patch faz (ou como é definido).
Parece, para um iniciante em Ruby como eu, ser um “método” — por falta de uma palavra melhor — ou um “hook” que facilita a sobrescrita de classes do Discourse; mas não consegui encontrar o código Ruby que define como ele funciona internamente.
Alguém se importa em me explicar isso ou me indicar o “código definidor” que explicaria o que o reloadable_patch faz, sob uma perspectiva de funcionamento interno do Ruby?
Não sei por que o método def não apareceu quando pesquisei no repositório com essa palavra-chave; mas é exatamente o que eu estava procurando!
Obrigado novamente!!
Edição: Entendi o que aconteceu. Não examinei o arquivo instance.rb com profundidade suficiente e parei no início do arquivo; mas havia 23 entradas para reloadable_patch no arquivo, e o def estava no final.
Uma busca por “def reloadable_patch” entre aspas o encontrou (agora mesmo)
Estou começando a ficar viciado em Ruby, explorando cada canto e recanto.