Cos'è esattamente "reloadable_patch"?

Ciao,

Sto ancora cercando di analizzare i plugin. Stavo cercando di sovrascrivere TopicsController nei miei studi, ho esplorato il repository del codice di Discourse e ho notato reloadable_patch.

Poi ho cercato reloadable_patch in Discourse e ho ottenuto 12 risultati nel codice:

Quindi ho deciso di fare una ricerca più ampia per capire questa affascinante “metodo/gancio (?)”. Così ho:

  • Cercato su tutto GitHub:
    – Tutti i risultati sembrano essere correlati a Discourse (plugin)

  • Cercato sul web:
    – Tutti i risultati sembrano essere correlati a Discourse (plugin)

  • Cercato su Meta:
    – Ho ottenuto qualche risultato, ma nulla che spiegasse reloadable_patch (interni) in dettaglio.

Successivamente, ho cercato di nuovo nel repository di Discourse e non sono riuscito a trovare (deve essere perché non sono esperto) la “definizione” di cosa faccia esattamente reloadable_patch (o dove sia definito).

A un principiante di Ruby come me, sembra essere un “metodo”, per mancanza di una parola migliore, o un “gancio” che facilita la sovrascrittura delle classi di Discourse; ma non sono riuscito a trovare il codice Ruby che ne definisce il funzionamento interno.

Qualcuno potrebbe spiegarmelo o indicarmi il “codice definitorio” che spiega cosa fa reloadable_patch dal punto di vista degli interni di Ruby?

Grazie!

Spero di non essere un fastidio nel chiedere !! :slight_smile:

È definito qui. Spero che questo aiuti a indagare ulteriormente.

Grazie mille @fzngagan

Non so perché il metodo def non sia apparso quando ho cercato nel repository con quella parola chiave; ma è esattamente quello che stavo cercando!

Grazie ancora!!

Modifica: Ho capito cosa è successo. Non ho esplorato abbastanza a fondo il file instance.rb e mi sono fermato in cima; ma nel file c’erano 23 voci per reloadable_patch e il def si trovava in fondo.

Una ricerca con “def reloadable_patch” tra virgolette l’ha trovato (proprio ora) :slight_smile:

Sto iniziando a diventare dipendente da Ruby, esplorando ogni angolo e ogni fessura.

Spiegato bene da @markvanlan