我刚刚开始学习 Ruby 中的元编程,发现自己想知道是否可以(以某种方式)查看已生成的代码。作为编码练习,我想编写一个简短的方法,该方法将生成一个 Ruby 文件,其中包含一些方法定义,或者理想情况下,包含整个类或模块定义。
我在想也许只是建立文件的字符串表示然后仅仅将其写出来可能是一种实现方式,但这种方式并不需要使用元编程,因为我的目标是元编程练习,我想找出一种方法将其合并到该过程中,或者以另一种方式进行。
我想,如果我要采用构建字符串的方法,我想从类似的东西开始
klass_string = "class GeneratedClass\n\t<BODY>\nend"
然后以某种方式保存这样的输出
define_method( :initialize ) do
instance_variable_set("@var", "some_value")
end
在可以替换 '' inklass_string
然后写出到文件中的字符串中。我知道我可以将上面的代码片段直接放入字符串中,它会很好地锻炼,但我希望输出采用更标准的格式,就好像它是手工编写的而不是生成的一样:
class GeneratedClass
def initialize
@var = 'some_value'
end
end
有人能指出我正确的方向吗?