29 lines
399 B
Markdown
29 lines
399 B
Markdown
# Lösung: Methoden einer Klasse dynamisch erzeugen
|
|
|
|
|
|
```ruby
|
|
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
|
|
`` |