Фрагмент 1:
module A
def cm(m,ret)
class_eval do
define_method(m.to_sym) do
return ret
end
end
end
end
и фрагмент 2:
module B
def cm(m,ret)
class_eval do
"def #{m} #{ret} end"
end
end
end
Методы, определенные в этих модулях, должны использоваться для создания методов в классе, который возвращает определенные значения. Вот пример:
class Whatever
extend A
cm("two",2)
end
и это создаст метод с именем 2, который вернет 2. Дело в том, что код во втором фрагменте не работает. Есть идеи почему? Я думал, что class_eval
может взять строку.