Pendant un certain temps, xml-simple gem avait travaillé pour moi très bien (indirectement, grâce à une autre gemme).Empêcher gem A à partir de méthodes de remplacement de la gem B sans rapport B
Mais récemment, j'ai dû installer Amazon S3 gem aussi. Les gars d'Amazon avaient décidé que xml-simple n'était pas assez cool, ils ont donc fourni un remplacement: 'faster-xml-simple'. Ils ont également décidé que tout le monde veut utiliser leur code maintenant, ils l'ont fait:
class XmlSimple # :nodoc:
def self.xml_in(*args)
FasterXmlSimple.xml_in *args
end
end
Mais deux pierres précieuses diffèrent largement dans le comportement et les options. Et maintenant, chaque fois que j'appelle XmlSimple.xml_in
, je vais à la version d'Amazon.
Existe-t-il un moyen d'arrêter la gemme A (amazon S3) à partir des méthodes de substitution de la gemme B (xml-simple)? Ou faire les changements d'Amazon vu seulement aux gemmes d'Amazon? Par exemple, lorsqu'il est déployé sur Heroku, tout fonctionne très bien.
Merci!
Je pense que le phénomène est appelé monkeypatching. –
@Andrew Voulez-vous dire, nous devons apprendre à vivre avec? –
Je ne sais pas - je ne fais que mentionner le concept pour qu'il soit plus facile de le google. –