1

コードを再利用するために、Ruby アプリケーションからいくつかのコードを gem に抽出しようとしています。これを安全に行うために、仮想の「フェンス」を作成して、プロジェクト内の他のコードへの参照がないようにしたいと考えています。「フェンス」内の唯一のコードは、既存の gem と、gemify しようとしているコードである必要があります。

メソッド呼び出しロジックにフックし、その後各メソッド呼び出しをログに記録するマジック モンキー パッチを適用することで、これを行うことを考えています。

これが私が達成しようとしていることの視覚的表現です:

ここに画像の説明を入力

いくつかの仮定:

  1. gem化されるコードは、プロジェクト内のコード全体よりもはるかに小さい
  2. プロジェクト コードは変更できますが、製品レベルの品質である必要があります

ここで推奨されるソリューションを使用して、すでに調査しました。

Rubyでメソッド呼び出しをインターセプトするにはどうすればよいですか?

ただし、このソリューションは、受信側でメソッド呼び出しをインターセプトし、プロジェクト内のすべてのクラスでコードを拡張する必要もあります (gemify するクラスを除く)。

理想的には、せいぜいすべてのクラスを拡張してgem化したいと考えています。

4

0 に答える 0