У меня есть программа на Ruby, и я хочу принять созданный пользователем метод и создать новый метод из этого имени. Я пробовал это:
def method_missing(meth,*args,&block)
name = meth.to_s
class << self
define_method(name) do
puts "hello " + name
end
end
end
И получаю следующую ошибку:
`define_method': interning empty string (ArgumentError) in 'method_missing'
Есть идеи? Спасибо.
Редактировать:
У меня все работает по-другому, но мне все еще любопытно, как это сделать. Вот мой код:
def method_missing(meth,*args,&block)
Adder.class_eval do
define_method(meth) do
puts "hello " + meth
end
end
send("#{meth}")
end