ruby-uebungen/Assignment_033/solution/readme.md

399 B

Lösung: Methoden einer Klasse dynamisch erzeugen

def to_leet(s)
  s.tr('aeiou', '43107')
end

def leet_class(clazz)
  clazz.instance_methods(false).each do |m|
    name = m.to_s
    leet_name = to_leet(name).to_sym
    puts leet_name
    clazz.define_method(leet_name) do |*p|
    end
  end
end

class M
  def hello; end
  def world; end
end

leet_class(M)

m = M.new
m.h3ll0
m.w0rld
``