Looking for ruby Keywords? Try Ask4Keywords

Ruby LanguageSinge en Ruby


Remarques

Le patch de singe, bien que pratique, présente des pièges qui ne sont pas immédiatement évidents. Plus particulièrement, un patch comme celui-là dans l'environnement pollue la portée globale. Si deux modules ajoutent tous deux des Hash#symbolize , seul le dernier module requis applique effectivement sa modification; le reste est effacé.

De plus, s'il y a une erreur dans une méthode patchée, le stacktrace pointe simplement vers la classe corrigée. Cela implique qu'il y a un bogue dans la classe Hash elle-même (ce qui existe maintenant).

Enfin, Ruby étant très flexible avec les conteneurs à conserver, une méthode qui semble très simple lorsque vous écrivez a beaucoup de fonctionnalités indéfinies. Par exemple, la création de Array#sum convient à un tableau de nombres, mais se casse à partir du tableau d'une classe personnalisée.

Une alternative plus sûre est celle des raffinements, disponibles en Ruby> = 2.0.

Singe en Ruby Exemples Liés