我对Ruby一无所知,但我对DSL非常感兴趣。 DSL似乎是社区的热门话题。
您是否真的为了自己的目的在Ruby中实现DSL?如果是这样,他们有多复杂和多么专注?
我在这里见过这个question,但我对你的日常生活更感兴趣。
感谢。
答案 0 :(得分:3)
这是Ruby DSL的另一个例子,它叫做Mail,它是用于发送电子邮件的DSL:
mail = Mail.new do
to 'nicolas@test.lindsaar.net.au'
from 'Mikel Lindsaar <mikel@test.lindsaar.net.au>'
subject 'First multipart email sent with Mail'
end
答案 1 :(得分:2)
我在Ruby中编写DSL的经验非常有限,但我已经完成了以下工作:
(1)L-System DSL:
Dragon = TexPlay::LSystem.new {
rule "F" => "F"
rule "X" => "X+YF+"
rule "Y" => "-FX-Y"
angle 90
atom "FX"
}
(2)图像处理工具:
image.paint {
circle 20, 20, 15, :color => :red
rect 10, 20, 100, 100, :color => :green
pixel 40, 40, :color => :white
}
答案 2 :(得分:0)
它的Ruby专长,让一切工作变得非常快,但它可能变得难以管理。我想说,对于中小型DSL项目,ruby非常棒。由于我没有在Ruby中创建任何大型DSL项目,我不推荐它(对于更大的项目)。