我正在寻找 Ruby DSL(领域特定语言)的优秀示例。您知道哪些存储库、项目值得一读?为什么它(或:它们是)很好的例子?
我对经过深思熟虑和设计的更复杂的示例特别感兴趣。
Rake 和 Rack 是 DSL 的一些很好的例子。如果您想要更多示例,请查看以下内容:
如果您想开始自己制作,这里有一个名为Building a DSL in Ruby的优秀教程。
当然,另一个例子是Rake,Ruby 构建系统。在我看来,是什么让 DSL “好”:
您是否检查过Docile gem,它可能是满足您需求的最简单和最干净的方式?
Ruby on Rails 的 Active Record 是一种 DSL!
http://apidock.com/rails/ActiveRecord/Base
此外,代码学校的这一集可能会很有趣,因为它会导致构建 DSL(在那里我了解到 Active Record 是 DSL)
http://www.codeschool.com/courses/ruby-bits-part-2
上述课程还讨论了外部和内部 DSL。Cucumber 是一个外部 DSL 示例,您需要在其中构建解析器和编译器等。Active Record 是在一些现有代码中运行的内部 DSL 示例。