【发布时间】:2009-12-30 14:07:00
【问题描述】:
我正在编写一个 DSL 来为生物信息学平面文件生成解析器。我想让用户在块中定义辅助函数,然后将该函数包含在解析上下文对象中。我想使用如下语法:
rules = Rules.new do
helpers do
def foo()
#...
end
def bar( baz )
#...
end
end
# Here come the parsing rules which can access both helper methods
end
我想将辅助方法添加到模块定义中,并将模块包含在实例中(只是实例而不是类)。
你知道我怎样才能达到这个目标吗?语法略有不同的答案也很受欢迎。
【问题讨论】:
标签: ruby metaprogramming dsl