Что именно такое «reloadable_patch»?

Привет,

По-прежнему пытаюсь разобраться с плагинами. Я изучал возможность переопределения TopicsController в своих исследованиях, просмотрел репозиторий кода Discourse и заметил reloadable_patch.

Затем я поискал reloadable_patch в Discourse и получил 12 совпадений в коде:

Поэтому я решил поискать шире, чтобы понять эту увлекательную «метод / хук (?)». Для этого я:

  • Просмотрел весь GitHub:
    — Все результаты, похоже, относятся к Discourse (плагинам).

  • Поиск в интернете:
    — Все результаты, похоже, относятся к Discourse (плагинам).

  • Поиск на Meta:
    — Нашел несколько упоминаний, но ничего, что подробно объясняло бы reloadable_patch (внутреннее устройство).

Далее я снова поискал в репозитории Discourse, но не смог найти (скорее всего, потому что я еще неопытен в этом) «определение» того, что именно делает reloadable_patch (или как он определен).

Мне, как новичку в Ruby, это кажется «методом», если не найти лучшего слова, или «хуком», который упрощает переопределение классов Discourse; однако я не смог найти код на Ruby, который описывает его внутреннюю работу.

Не могли бы вы объяснить мне это или указать на «исходный код определения», который объяснил бы, что делает reloadable_patch с точки зрения внутреннего устройства Ruby?

Спасибо!

Надеюсь, я не слишком навязчив с этим вопросом !! :slight_smile:

Это определено здесь. Надеюсь, это поможет вам копнуть глубже.

Огромное спасибо, @fzngagan

Не совсем понятно, почему метод def не появился при поиске в репозитории по этому ключевому слову; но это именно то, что я искал!

Ещё раз спасибо!!

Редактирование: Я понял, что произошло. Я недостаточно глубоко изучил файл instance.rb и остановился на его начале; однако в файле было 23 вхождения reloadable_patch, а определение def находилось внизу.

Поиск по фразе “def reloadable_patch” в кавычках нашёл его (только что) :slight_smile:

Я начинаю увлекаться Ruby, изучая каждый уголок и закоулок.

Красиво объяснил @markvanlan