3 Stimmen

Erlebnisse mit Ruby DSL?

Ich kenne nichts in Ruby, aber ich bin ziemlich interessiert an DSLs. Und DSL scheint ein Buzzword für Ihre Community zu sein.

Implementieren Sie tatsächlich DSLs in Ruby für Ihre eigenen Zwecke? Wenn ja, wie komplex und wie engagiert sind sie?

Ich habe diese Frage hier gesehen, aber ich bin mehr an Ihren täglichen Erfahrungen interessiert.

Danke.

3voto

horseyguy Punkte 28632

Hier ist ein weiteres Beispiel für eine Ruby-DSL, sie heißt Mail und ist eine DSL zum Versenden von E-Mails:

mail = Mail.new do
    to 'nicolas@test.lindsaar.net.au'
    from 'Mikel Lindsaar '
    subject 'Erste E-Mail mit mehreren Teilen mit Mail gesendet'
end

hier sehen: http://github.com/mikel/mail

2voto

horseyguy Punkte 28632

Meine eigene Erfahrung beim Schreiben von DSLs in Ruby ist ziemlich begrenzt, aber ich habe folgendes gemacht:

(1) Eine L-System-DSL:

Dragon = TexPlay::LSystem.new {
    rule "F" => "F"
    rule "X" => "X+YF+"
    rule "Y" => "-FX-Y"
    angle 90

    atom "FX"
}

(2) Ein Bildbearbeitungswerkzeug:

image.paint {
    circle 20, 20, 15, :color => :red
    rect 10, 20, 100, 100, :color => :green
    pixel 40, 40, :color => :white
}

0voto

RubyDubee Punkte 2398

Es ist Ruby's Spezialität, alles sehr schnell zum Laufen zu bringen, aber es könnte schwierig werden zu verwalten. Ich würde sagen, für kleine oder mittlere DSL-Projekte ist Ruby großartig. Da ich noch kein großes DSL-Projekt in Ruby erstellt habe, kann ich es nicht empfehlen (für größere Projekte).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X