Ruby DSL опыт? - PullRequest
       43

Ruby DSL опыт?

3 голосов
/ 16 марта 2010

Я ничего не знаю в Ruby, но я довольно заинтересован в DSL. И DSL, кажется, модное слово для вашего сообщества.

Реализуете ли вы DSL в Ruby для своих собственных целей? Если да, то насколько они сложны и посвящены?

Я видел этот вопрос здесь, но меня больше интересует ваш повседневный опыт.

спасибо.

Ответы [ 3 ]

3 голосов
/ 19 марта 2010

Вот еще один пример 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

см. Здесь: http://github.com/mikel/mail

2 голосов
/ 16 марта 2010

Мой собственный опыт написания DSL на Ruby довольно ограничен, но я сделал следующее:

(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
}
0 голосов
/ 16 марта 2010

Его особенность Ruby - заставить все работать очень быстро, но управлять им может быть сложно. Я бы сказал, для малых или средних проектов DSL Ruby - это круто. Поскольку я не создал ни одного крупного проекта DSL в Ruby, я не могу рекомендовать его (для более крупных проектов).

...