この状況で2回気づきました。システムにgemをインストールし、Railsプロジェクトから使用を開始します。最終的には、そのgemにいくつかの変更を加える必要があります。どのように進めればよいですか? ?
理想的には、〜/ third_party/gemsなどのどこかでそのgemのソースコードをチェックして、それに取り組んで、代わりに私のRailsプロジェクトにそれを使用させたいです。それは可能ですか?
すべての場合において、宝石はgithubにあったので、おそらくgithubでそれを作成し、クローンを作成し、チャンスを作って、自分のブランチを維持します。次に、サーバーにgem installを使用して、そのブランチを直接インストールすると思います。それは理にかなっていますか?
今日、これはBundlerで非常に簡単に行えます。宝石のローカルコピーを作成してから、
gem "whatever"
gemfileでは、次のことを行います。
gem "whatever", :path => "/home/pupeno/whatever"
バンドルインストールを実行した後、gemはそのディレクトリから選択されます。そこで何かを変更したとしても、それを再ロードするために必要なのはRailsを再起動することだけです。
Gemの独自の変更を使用してアプリケーションをデプロイする必要がある場合は、GithubなどとGemfileでフォークを作成します。
gem "whatever", :git => "[email protected]:/pupeno/whatever.git"
以上です。シンプルでわかりやすく、美しいです。
すべての場合において、宝石はgithubにあったので、おそらくgithubでそれを作成し、クローンを作成し、チャンスを作って、自分のブランチを維持します。次に、サーバーにgem installを使用して、そのブランチを直接インストールすると思います。
あなたが本当に実際の宝石のソースをハックする必要があるなら、そうです、それはそれをする方法でしょう。しかし、それは最後の手段であるべきです。必要がなければ、実際の宝石を維持したくありません。 Railsコードのgemクラスの代わりに、機能を変更してクラスを使用する必要があるgemソースからクラスを拡張してみませんか?
必要なことを行うために、実際にサードパーティのコードを直接ハッキングする必要があることはめったにありません。優れたソフトウェアは拡張/簡単に拡張できます。