「reloadable_patch」とは何ですか?

こんにちは、

プラグインの解析をまだ続けています。勉強の一環として TopicsController をオーバーライドしようとしていたところ、Discourse のコードリポジトリを調べて reloadable_patch というものがあることに気づきました。

その後、Discourse 内で reloadable_patch を検索したところ、12 のコードヒットが見つかりました:

そこで、この魅力的な「メソッド/フック(?)」についてより広く理解しようとしました。そのため、以下の検索を行いました:

  • GitHub 全体を検索:
    – 全ての結果は Discourse(プラグイン)に関連していました

  • Web 全体を検索:
    – 全ての結果は Discourse(プラグイン)に関連していました

  • Meta サイトを検索:
    – いくつかのヒットがありましたが、reloadable_patch の内部動作について詳しく説明しているものは見つかりませんでした。

次に、再度 Discourse リポジトリを検索しましたが、reloadable_patch が正確に何を行うのか(またはどこで定義されているのか)という「定義」を見つけることができませんでした(おそらく私がこの分野に不慣れなためでしょう)。

Ruby の初心者である私には、これは適切な言葉が見つからないため「メソッド」と呼ぶべきものか、あるいは Discourse クラスのオーバーライドを容易にする「フック」のように思えます。しかし、内部的にどのように動作するかを定義する Ruby コードを見つけることができませんでした。

どなたかこれを説明してくださるか、Ruby の内部から見て reloadable_patch が何を行うのかを説明する「定義コード」への案内をしていただけませんか?

ありがとうございます!

このような質問をして迷惑をかけていないことを願っています!! :slight_smile:

ここで定義されています。さらに調査する際に役立つことを願っています。

@fzngagan さん、本当にありがとうございます。
なぜその def メソッドが、そのキーワードでリポジトリを検索したときに表示されなかったのかはわかりませんが、まさに探していたものでした!

改めてありがとうございます!!

追記:何が起きたかわかりました。instance.rb ファイルを深く見ておらず、ファイルの先頭で止まってしまっていたのです。しかし、そのファイルには reloadable_patch のエントリが 23 件あり、def はファイルの一番下にあったのです。

「def reloadable_patch」を引用符付きで検索すると見つかりました(たった今) :slight_smile:

Ruby に夢中になり始めています。隅々まで調べています。

@markvanlan による丁寧な説明です