目前没有可以调用的方法来注入动态注释,我认为我们真的不想引入 erb 解析阶段。
我认为添加这样的方法也不是很容易添加。
我可以看到的增强功能是添加将常规字符串插值逻辑放入注释中的功能,然后我们可以让注释解析器评估注释字符串。
不过,这会带来一个很大的警告:由于注释是在流程执行之外解析(并将被评估)的,因此它无法评估嵌入在注释中的任何局部变量。
即这是行不通的,因为它i是一个局部变量:
dut.srams.each_with_index do |sram, i|
# Testing SRAM #{i}
test "sram", instance: i
end
像这样的东西会起作用,因为它正在注入一个全局变量,稍后在解析/评估评论时可以访问该变量,但对您的用处可能较少:
# Testing one of #{dut.srams.size} SRAMs
test "sram", instance: i
我认为要做你真正想做的事,我们需要支持这一点,但这只是你可能不得不卷起你的袖子的更多工作:
dut.srams.each_with_index do |sram, i|
cc "Testing SRAM #{i}"
test "sram", instance: i
end