Как мне динамически объявить метод с помощью method_missing?

У меня есть программа на 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
5
задан New Alexandria 13 September 2013 в 15:08
поделиться