Qu'est-ce que "reloadable_patch" exactement ?

Salut,

Je suis toujours en train de disséquer des plugins. Dans le cadre de mes études, je cherchais à surcharger TopicsController et, en parcourant le dépôt de code de Discourse, j’ai remarqué reloadable_patch.

Ensuite, j’ai recherché reloadable_patch dans Discourse et j’ai obtenu 12 résultats de code :

J’ai donc décidé d’élargir ma recherche pour mieux comprendre ce «méthode / crochet (?)» fascinant. J’ai donc :

  • Recherché sur l’ensemble de GitHub :
    – Tous les résultats semblent liés à Discourse (plugins)

  • Recherché sur le web :
    – Tous les résultats semblent liés à Discourse (plugins)

  • Recherché sur Meta :
    – J’ai obtenu quelques résultats, mais rien qui explique reloadable_patch (internes) en détail.

Ensuite, j’ai à nouveau recherché dans le dépôt de Discourse et je n’ai pas pu trouver (ce doit être parce que je n’ai pas encore assez d’expérience dans ce domaine) la «définition» de ce que fait exactement reloadable_patch (ou comment il est défini).

Pour un débutant en Ruby comme moi, cela semble être une «méthode» (pour ne pas dire mieux) ou un «crochet» qui facilite la surcharge des classes de Discourse ; mais je n’ai pas trouvé le code Ruby qui définit son fonctionnement interne.

Est-ce que quelqu’un pourrait m’expliquer cela ou m’indiquer le «code de définition» qui expliquerait ce que fait reloadable_patch d’un point de vue des internals de Ruby ?

Merci !

J’espère que je ne suis pas trop pénible en posant cette question !! :slight_smile:

C’est défini ici. J’espère que cela t’aidera à creuser davantage.

Merci beaucoup @fzngagan

Je ne sais pas pourquoi la méthode def n’est pas apparue lorsque j’ai recherché ce mot-clé dans le dépôt ; mais c’est exactement ce que je cherchais !

Encore merci !!

Édit : Je vois ce qui s’est passé. Je n’ai pas examiné le fichier instance.rb assez en profondeur et je me suis arrêté au début du fichier ; mais il y avait 23 entrées pour reloadable_patch dans le fichier, et le def se trouvait tout en bas.

Une recherche avec “def reloadable_patch” entre guillemets l’a trouvé (à l’instant) :slight_smile:

Je commence à devenir accro à Ruby, en explorant chaque recoin.

Bien expliqué par @markvanlan