0

私は、1 つの主要な gem (SuperGem と呼びましょう) とそれが依存するいくつかの小さな gem で構成される ruby​​ プロジェクトを使用しています。このプロジェクトは Github にあり、私はそれをフォークし、独自のバージョン (SuperGemFork と呼ばれる) を維持しています。SuperGem が更新されたら、新しいコードをプルしてマージし、SuperGemFork のバージョン番号を更新するだけです。

これが状況です。また、依存関係の 1 つの独自のバージョンを作成したいと考えています (これを SmallGem と呼びましょう)。そこで、SuperGemFork を SmallGem ではなく SmallGemFork に依存させたいと思います。そのため、SuperGem と SmallGem の両方が更新されたら、両方の gem からコードをプルしてフォークにマージし、バージョン番号を更新して、SuperGemFork の依存関係を SmallGemFork の新しいバージョンに依存するように変更する必要があります。

私が抱えている問題は、SuperGemFork の依存関係を変更しなければならないことです。SuperGem (オリジナル) が更新されると、新しいバージョンの SmallGem に依存するようになりました。ただし、両方の gem からコードをプルしてマージした後、依存関係を更新するのを忘れた場合、新しいバージョンが利用可能であっても、SuperGemFork はまだ SmallGemFork の古いバージョンに依存しています。bundle install依存関係を変更しなければならないことは冗長でエラーが発生しやすいので、アプリを実行または開始するときに、忘れた場合に少なくとも何かが失敗するようにしたいと考えています。

それで、それらの間に依存関係がある宝石の独自のフォークを簡単に維持するための良い方法はありますか?

ありがとう、アレックス

4

1 に答える 1

0

ソースコードを書き直すのではなく、元の gem にモンキーパッチを適用することが可能であれば、私はそのようにします。これは Ruby の強みの 1 つです。

その後、彼らはコードを変更できますが、実際のロジックと作成しているオブジェクトほどソースの物理的なレイアウトに密接に結合することはありません。

于 2012-08-08T21:58:20.420 に答える