Хорошо, так что это сводит меня с ума. Точка этого кода заключается в том, что я должен иметь возможность добавлять метод динамически, если он имеет форму object.plusnum, где num - любое число. Я не совсем уверен, как заставить это работать. Это мой лучший выстрел в него до сих пор, но в настоящее время я получаю несколько ошибок.Ошибки метапрограммирования в Ruby
Код:
class Adder
def initialize(_val)
@start_value = _val
end
def method_missing(method_name, *args)
method = method_name.to_s
if method.start_with?("plus") then
num = method[4 .. method.length]
if (/^[\d]+(\.[\d]+){0,1}$/ === num) then
number = Integer(num)
self.class_eval("def #{method} return @start_value + #{number} end")
else
super
end
else
super
end
end
end
Ошибка настоящее время я получаю то, что "class_eval" не определено. Я довольно новичок в метапрограммировании и рубине, и это сводит меня с ума.