¿Qué es exactamente "reloadable_patch"?

Hola,

Sigo intentando analizar los plugins. Estaba tratando de sobrescribir TopicsController en mis estudios, busqué en el repositorio de código de Discourse y noté reloadable_patch.

Luego busqué reloadable_patch en Discourse y obtuve 12 coincidencias de código:

Así que decidí buscar de manera más amplia para intentar comprender esta fascinante “método/gancho (?)”, por lo que:

  • Busqué en todo GitHub:
    – Todos los resultados parecen estar relacionados con Discourse (plugins)

  • Busqué en la web:
    – Todos los resultados parecen estar relacionados con Discourse (plugins)

  • Busqué en Meta:
    – Obtuve algunas coincidencias, pero nada que explicara reloadable_patch (internos) en detalle.

A continuación, busqué nuevamente en el repositorio de Discourse y no pude encontrar (debe ser porque no tengo experiencia en esto) la “definición” de qué hace exactamente reloadable_patch (o cómo se define).

Parece, para un principiante de Ruby como yo, ser un “método” (por falta de una palabra mejor) o un “gancho” que facilita la sobrescritura de clases de Discourse; pero no pude encontrar el código en Ruby que define cómo funciona internamente.

¿A alguien le importaría explicármelo o indicarme el “código definitorio” que explique qué hace reloadable_patch desde una perspectiva de los internos de Ruby?

¡Gracias!

Espero no estar siendo un estorbo al preguntar !! :slight_smile:

Está definido aquí. Espero que esto ayude a investigar más a fondo.

Muchas gracias, @fzngagan

No estoy seguro de por qué el método def no apareció cuando busqué en el repositorio con esa palabra clave; ¡pero eso es exactamente lo que estaba buscando!

¡Gracias de nuevo!!

Edición: Veo qué pasó. No profundicé lo suficiente en el archivo instance.rb y me detuve al principio del archivo; pero había 23 entradas para reloadable_patch en el archivo, y el def estaba al final.

Una búsqueda de “def reloadable_patch” entre comillas lo encontró (hace un momento) :slight_smile:

Empiezo a volverse adicto a Ruby, explorando cada rincón y grieta.

Explicado amablemente por @markvanlan