Möchte ich dynamisch erstellen Sie eine Instanz-Methode der Kind-Klasse durch die class-Methode der übergeordneten Klasse.
class Foo
def self.add_fizz_method &body
# ??? (This is line 3)
end
end
class Bar < Foo
end
Bar.new.fizz #=> nil
class Bar
add_fizz_method do
p "i like turtles"
end
end
Bar.new.fizz #=> "i like turtles"
Was zu schreiben auf Zeile #3?
verwenden
define_method
wie diese:Ausgabe:
p self.class
untenp 'i like turtles'
.self
ist bereits eine Instanz vonBar
.nil
statt werfen eineNoMethodError
vorher genanntadd_fizz_method
Sie deklarieren eine leerefizz
Methode in derFoo
Klasse.define_method 'fizz', do &block.call end
zuvor. tyvm. bekam, was ich brauchte und gelernt, eine Sache....oder der Annahme einer block