Wie stellst du fest, dass Affe-Patching in Ruby aufgetreten ist?

8

Wie überprüfen Sie, ob in einer bestimmten Klasse in Ruby Affe gepatcht wurde? Wenn das möglich ist, ist es auch möglich, die vorherige (n) Implementierung (en) des Attributs zu erhalten, das gepatcht wurde?

    
Readonly 02.12.2008, 21:30
quelle

2 Antworten

3

Ich habe dieses Blog-Posting gefunden, das darauf eingeht, wie man method_added verwendet, um Affen-Patches zu verfolgen. Es ist nicht schwer, es zu erweitern, um die Methoden zu verfolgen, die gepatcht wurden.

Ссылка :

  

Indem wir offene Klassen verwenden, können wir method_added für Klasseninstanzen neu definieren und jedes Mal, wenn eine Methode für eine Klasse definiert wird, einige benutzerdefinierte Funktionen ausführen. In diesem Beispiel definieren wir method_added neu, damit es verfolgt, wo die Methode zuletzt definiert wurde.

%Vor%
    
Readonly 03.12.2008, 05:40
quelle
8

Es gibt die Hooks method_added und method_undefined . Garry Dolley hat ein mmutable-Modul geschrieben, das das Patchen von Affen verhindert.

    
user37011 02.12.2008 23:14
quelle

Tags und Links