2016-11-23 3 views
0

Lassen Sie mich sagen, ich habe eine class Alex.Ruby-Methode, die nach der Methode ausgeführt wird definiert

class AB < Alex 
    some_definition_here # it changes some class variables 
end 

Meine Frage ist: Gibt es so etwas wie self.included für Klassen, die erst nach Klasse ausgeführt wird, definiert ist? Ich möchte nur dann auf Klassenvariablen zugreifen, wenn einige Klassenvariablen geändert wurden.

+0

Der Name für "alles wie self.included" ist "object lifecycle hook". – maicher

Antwort

0

Ja, gibt es. Aber es ist ein bisschen schwierig, da es keine Idee von "Klasse definiert" gibt, aufgrund des offenen Klassen-Konzepts in Ruby.

Was Sie suchen, ist TracePoint. Mögliche Verwendung:

TracePoint.new(:end) do |tp| 
    if tp.self.name == 'AB' 
     # DO SOME STUFF 
     # at this very moment class was closed with end for the 1st time 
     tp.disable 
    end 
    end.enable 
Verwandte Themen