在为 DCI 创建gem时,我发现需要能够告诉环境特定表达式源中的位置。
原因是在我的特定 cse 中,大部分代码都交给instance_eval
了 instance_eval 的位置作为错误位置。但是出于调试目的,我希望能够标记实际错误位置的位置。
context :MyContext do
role :foo do
def bar
player.baz
end
end
end
假设上面的代码不正确,标识的对象player
没有名为 baz 的方法。我希望运行时失败并将上面的第 4 行指示为错误位置,而不是 gem 源中的任意行
我将能够检测代码以在评估表达式时更新值,我的问题是我不知道要更新什么