RubyConf 2010 - DSLs go Concrete by: Martin Thiede
"RGen" is a lightweight Ruby framework supporting domain specific languages. It features metamodel and model definition, model transformation and code generation by means of internal Ruby DSLs. In this talk I will briefly introduce RGen and describe how it is used for code generation and model transformation in the automotive software domain. "Concrete" is a web technology based editor for domain specific languages. It is "keyboard oriented" and provides auto completion and constraint checking based on the domain language. Furthermore it features rich graphical representation of model elements, customizable via HTML templates and CSS. Concrete and RGen work together very well, a Concrete web editor can be derived automatically from an RGen metamodel, models are exchanged via JSON. In the second part of my talk, I will introduce Concrete and present example editors for different domain specific languages. One example shows Concrete for editing RGen metamodel definitions, i.e. as a convenient frontend to the internal Ruby DSL. Another one shows how Concrete integrates into Rails and how it can be used to customize web applications on the web with ease.