我正在尝试为Ruby程序编写DSL。它目前的工作原理如下
generator.format
title "Text"
author "John Doe"
body "Text"
end
generator.generate!
我应该提供generator.format
内部调用的方法的可见性?目前我将每种格式化方法都视为protected
但是当我测试它们时,我必须将每个调用包装在instance_eval
中以访问它们。我应该在什么样的可见性声明我的DSL方法?
答案 0 :(得分:1)
当我测试它们时,我必须将每个呼叫包裹在
instance_eval
中以访问它们
你说这就像有另一种解决方案。
如果要在没有显式对象的情况下调用方法,则必须使用this
更改instance_eval
。
现在为了确保这些方法的可见性,我建议使用尽可能低的可见度private
。