좋아, 이것이 나를 미치게합니다. 이 코드의 요점은 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"입니다 정의되지 않습니다. 나는 metaprogramming과 루비에 꽤 새로운데, 이것은 나를 미치게 만든다.