学写例子,发现以下一个问题,请帮忙看下。
代码中通过 class_eval 来注入 getter 方法,如果写成 class_eval{code} 就无法正常执行,问题出在哪里呢?
class Module private
def readonly(*sym) puts sym return if sym.size ==0 code =""
sym.each do |m| code << "def #{m}; @#{m};end\n" end
class_eval code end
def readwrite(*sym) return if sym.size == 0 code =""
sym.each do |m| code << "def #{m};@#{m};end\n" code << "def #{m}=(c);@#{m} = c; end\n" end
#############################################
#############################################
class_eval do
code
end
end
end