Defining “method_called” .. Wie erstelle ich eine Hook-Methode, die jedes Mal aufgerufen wird, wenn eine Funktion einer Klasse aufgerufen wird?

Ich möchte eine Hook-Methode erstellen, die jedes Mal aufgerufen wird, wenn eine Funktion einer Klasse aufgerufen wird. Ich habe method_added ausprobiert, aber es wird zum Zeitpunkt der Klassendefinition nur einmal ausgeführt.

class Base

  def self.method_added(name)
    p "#{name.to_s.capitalize} Method's been called!!"
  end
  def a
    p "a called."
  end
  def b
    p "b called."
  end
end
t1 = Base.new
t1.a
t1.b
t1.a
t1.b

Output:

"A Method's been called!!"
"B Method's been called!!"
"a called."
"b called."
"a called."
"b called."

Aber meine Anforderung ist, dass jede Funktion einer Klasse, die irgendwo im Programm aufgerufen wird, die Hook-Methode "method_called" auslöst.

Expected Output:
"A Method's been called!!"
"a called."
"B Method's been called!!"
"b called."
"A Method's been called!!"
"a called."
"B Method's been called!!"
"b called."

Wenn es eine definierte Hook-Methode gibt, die auf die gleiche Weise funktioniert, teilen Sie dies bitte mit.

Danke im Voraus.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage