Ruby如何解析代码,就像在Cucumber gem中一样?

时间:2014-10-02 18:46:16

标签: ruby-on-rails ruby cucumber

我想创建gem我将拥有类似于Cucumber gem的用例。我希望有扩展名的文件,比如“.scenario”,其中简单的文字将描述网站上用户步骤的场景。

我需要解析这个问题并用这些文本做一些事情。 Ruby / RoR中常见的方法是什么?

1 个答案:

答案 0 :(得分:2)

您正在寻求实施Domain-Specific Language (DSL)。在Ruby中,由于灵活的语法,这通常是作为"内部" DSL,意思是语言本身就是有效的Ruby。轨道' routes文件就是一个例子。使用内部DSL,您不必编写自己的详细解析逻辑;你刚刚提出了一些适合你所需语法的函数,然后将eval整个文件作为标准的Ruby代码库。

例如参见:Writing a Domain-Specific Language in Ruby