C'est une question très large car vous n'avez pas mentionné quel gemme ou comment vous vouliez modifier le comportement, mais...
En général, la façon d'aborder ce problème (une façon d'aborder ce problème) est d'ouvrir la gemme. Utilisez un éditeur qui peut ouvrir tous les fichiers afin de pouvoir passer facilement de l'un à l'autre. En regardant la gemme, déterminez quelle classe contient la fonctionnalité que vous voulez modifier.
Donc, vous allez dans votre répertoire de test ou de spec et vous écrivez un test comme :
# 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
et exécutez vos tests. Bien sûr, ils échouent car votre nouvelle fonctionnalité n'est pas en place.
Maintenant, disons que votre monnaie va dans spit_out_error_message
en classe AwesomeAuthentication
. Vous pouvez créer une classe dans votre projet -- probablement dans lib/awesome_auth.rb ou quelque chose comme ça. Dans cette classe, vous faites ce qui est décrit ici : Rails 3 : alias_method_chain toujours utilisé ? . Vous voudrez aussi lire ceci : http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/ car il décrit la modification d'une classe existante à l'aide de cette technique (faites défiler jusqu'en bas).
Vous créez donc un nouveau spit_out_error_message
Pour cela, il suffit de le bricoler comme décrit ci-dessus et de refaire les tests.