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 认为我想要做什么?