2023-05-25 17:47:19 +02:00
|
|
|
# Lösung: Methoden einer Klasse dynamisch erzeugen
|
|
|
|
|
2023-05-25 17:49:42 +02:00
|
|
|
|
|
|
|
```ruby
|
2023-05-25 17:47:19 +02:00
|
|
|
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
|
|
|
|
``
|