Gibt es eine Möglichkeit, die Liste der Methoden zu erhalten, die eine Ruby-Methode implementieren, wenn diese Methode aufgerufen wird?Wie kann ich eine Ruby-Methode Abhängigkeiten finden?
Zum Beispiel:
def foo
puts "foo"
end
def foo2
foo
end
Ich will wissen, dass, wenn „foo2“ nannte es erste „foo“ und 2. „Puts“ und die entsprechenden Dateien ruft diese Methoden definiert in. (Wenn "puts" andere Methoden aufrufen, würde ich sie gerne auch kennen)
Ist das möglich? und wenn, ja 'wie? Ich könnte sagen, dass meine Frage darin besteht, die Methodenabhängigkeiten zu finden.
Sie sind wahrscheinlich Flak für den Versuch, dies zu tun; Es ist nicht Aufgabe einer Methode, zu wissen, wer sie nennen kann (oder wer sie dafür genannt hat). Vielleicht möchten Sie Ihr Ziel/Problem teilen und sehen, ob es keine geeigneteren Lösungen gibt, und dabei helfen, Bedenken auszuräumen, die jemand hat, wenn es darum geht, schlechten Code zu schreiben. :) – coreyward
Statische Kontrollflussanalyse ist für eine dynamische Sprache wie Ruby ziemlich schwierig. –
Klingt wie ein Hack. Wenn Sie Aktionen in einer bestimmten Reihenfolge benötigen, warum legen Sie sie nicht auf die gleiche Weise, so dass es klar ist? Vielleicht stellen Sie eine andere Frage, aber Ihr Beispielcode macht nicht klar, warum Sie einen statischen Fluss durchsetzen wollen. Hast du ein realeres Beispiel? – jefflunt