58bc23516c | ||
---|---|---|
.. | ||
readme.md |
readme.md
Lösung: Methoden dynamisch aufrufen
def crazy_caller(obj)
# Methoden suchen
obj.methods.each do |m|
# m enthält ein Symbol mit dem Namen der Methode,
# wir wollen aber das Methoden-Objekt
method = obj.method(m)
begin
# Methode aufrufen, wenn sie keinen Parameter hat
method.call {} if method.arity == 0
rescue
end
end
end
class Test
def m1; puts 'm1'; end
def m2; puts 'm2'; end
def m3(a); puts 'm3'; end
def m4(a, b); puts 'm4'; end
end
crazy_caller(Test.new)