ruby-uebungen/Assignment_035/solution
Thomas Smits 58bc23516c Update of exercises 2023-05-25 17:49:42 +02:00
..
readme.md Update of exercises 2023-05-25 17:49:42 +02:00

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)