【发布时间】:2009-05-22 19:48:04
【问题描述】:
我正在寻找 Ruby DSL(领域特定语言)的优秀示例。您知道哪些存储库、项目值得一读?为什么它(或:它们是)很好的例子?
我对经过深思熟虑和设计的更复杂的示例特别感兴趣。
【问题讨论】:
我正在寻找 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 示例。
【讨论】: