我想创建gem我将拥有类似于Cucumber gem的用例。我希望有扩展名的文件,比如“.scenario”,其中简单的文字将描述网站上用户步骤的场景。
我需要解析这个问题并用这些文本做一些事情。 Ruby / RoR中常见的方法是什么?
答案 0 :(得分:2)
您正在寻求实施Domain-Specific Language (DSL)。在Ruby中,由于灵活的语法,这通常是作为"内部" DSL,意思是语言本身就是有效的Ruby。轨道' routes文件就是一个例子。使用内部DSL,您不必编写自己的详细解析逻辑;你刚刚提出了一些适合你所需语法的函数,然后将eval整个文件作为标准的Ruby代码库。