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