60

私はこの状況に2回気づきました。システムにgemをインストールし、Railsプロジェクトから使用を開始します。最終的に、私はその宝石にいくつかの変更を加える必要があります。どうすればいいですか?

理想的には、そのgemのソースコード(〜/ third_party / gemsなど)をチェックして、それに取り組み、Railsプロジェクトで代わりに使用してもらいたいと思います。それは可能ですか?

すべての場合において、宝石はgithubにあったので、おそらくgithubでそれを作成し、クローンを作成し、チャンスを作って、自分のブランチを維持します。次に、サーバーにgem installを使用して、そのブランチを直接インストールすると思います。それは理にかなっていますか?

4

2 に答える 2

105

今日、これは Bundler を使用して非常に簡単に行うことができます。宝石のローカルコピーを作成し、代わりに

gem "whatever"

Gemfile で、次のようにします。

gem "whatever", :path => "/home/pupeno/whatever"

bundle install を実行すると、そのディレクトリから gem が選択されます。そこに何か変更を加えたとしても、再ロードするために必要なことは、Rails を再起動することだけです。

Gem の独自の変更を使用してアプリケーションをデプロイする必要がある場合は、Github などでフォークを作成し、Gemfile で次のようにします。

gem "whatever", :git => "git@github.com:/pupeno/whatever.git"

以上です。それは、シンプルで、率直で、美しいものです。

于 2010-10-01T09:46:51.933 に答える
3

すべての場合において、gem は github にあったので、おそらく github でそれを取得し、クローンを作成し、チャンスをつかみ、自分のブランチを維持します。次に、サーバーにgem installを使用してそのブランチを直接インストールすると思います。

実際の gem ソースを本当にハックする必要がある場合は、そうです。それがその方法です。ただし、これは最後の手段にする必要があります。必要がなければ、実際の gem を維持したくありません。Railsコードのgemクラスの代わりにクラスを変更して使用する必要があるgemソースからクラスを拡張しないのはなぜですか?

必要なことを実行するために、実際にサードパーティのコードを直接ハッキングする必要があることはめったにありません。優れたソフトウェアは、拡張/簡単に拡張できます。

于 2009-10-17T17:58:20.837 に答える