これは非常に幅広い質問です。なぜなら、どの宝石やどのように動作を変更したいかについて言及しなかったからですが...
一般的に、これにアプローチする方法(これにアプローチする1つの方法)は、宝石を開くことです。すべてのファイルを開くことができるエディターを使用して、ファイルを簡単に切り替えることができます。宝石を見るとき、変更したい機能がどのクラスに含まれているかを見つけてください。
したがって、テストまたはスペックディレクトリに移動し、次のようなテストを記述します。
# Write tests to your API the way you want to write
# your code, not how you expect you *will* write that
# code.
def test_it_spits_out_my_awesome_error_message
# some setup code
assert_equal my_obj.spit_out_error_message, "some expected error message"
end
テストを実行します。もちろん、新しい機能が整っていないため、失敗します。
さて、あなたの変更がspit_out_error_message
クラスに入るとしましょうAwesomeAuthentication
。プロジェクトにクラスを作成できます。おそらくlib/awesome_auth.rbなどに作成できます。その中で、あなたはここで説明されているように行います:Rails 3:alias_method_chainはまだ使用されていますか?。この手法を使用して既存のクラスを変更する方法について説明しているhttp://yehudakatz.com/2009/03/06/alias_method_chain-in-models/もお読みください(一番下までスクロールしてください)。
したがって、新しいを作成し、spit_out_error_message
上記のようにそれを石畳にして、テストを再実行します。