【发布时间】:2013-11-06 01:29:24
【问题描述】:
Ruby 不喜欢这样:
item (:name, :text) {
label('Name')
}
我不知道为什么。我正在尝试创建一个 DSL。 'item' 方法如下所示:
def item(name, type, &block)
i = QbeItemBuilder.new(@ds, name, QbeType.gettype(type))
i.instance_exec &block
end
取项目的名称、项目的类型和块。构造一个项目生成器,并在其上下文中执行该块。
无论我是否需要使用 instance_exec (我认为我不需要 - 它可以填充在初始化程序中),我都知道:
SyntaxError (ds_name.ds:5: syntax error, unexpected ',', expecting ')'
item (:name, :text) {
^
如何调用具有多个参数和块的方法? ruby 认为我想要做什么?
【问题讨论】: