[Uml-devel] KDE/kdesdk/umbrello/umbrello
Richard Dale
Richard_Dale at tipitina.demon.co.uk
Fri Jul 22 03:14:47 UTC 2005
SVN commit 437549 by rdale:
* Added a Ruby code generator based on the newer more advanced
Java one, allowing code previewing and editing methods within
Umbrello.
* It has all the features of the Java generator except for
creating ANT scripts
* C++ doc comments are converted to RDOC format, like the
simpler ruby code generator.
* Generated comments can either be '#'s or =begin.. =end pairs
* The code was tested with the .xmi file for umbrello project
umbrello-1.4.xmi. But it really needs some sort of 'torture
test' with all the different types of associations, roles and
so on to verify to code generation.
CCMAIL: umbrello-devel at kde.org
M +6 -0 codegenerators/Makefile.am
M +5 -1 codegenerators/codegenfactory.cpp
A codegenerators/rubyclassdeclarationblock.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubyclassdeclarationblock.h [License: no copyright GPL (v2+) GENERATED FILE]
A codegenerators/rubyclassifiercodedocument.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubyclassifiercodedocument.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodeaccessormethod.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodeaccessormethod.h [License: no copyright GPL (v2+) GENERATED FILE]
A codegenerators/rubycodeclassfield.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodeclassfield.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodeclassfielddeclarationblock.cpp [License: no copyright GPL (v2+) GENERATED FILE]
A codegenerators/rubycodeclassfielddeclarationblock.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodecomment.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodecomment.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodedocumentation.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodedocumentation.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerationformbase.cpp [License: no copyright GENERATED FILE]
A codegenerators/rubycodegenerationformbase.h [License: no copyright GENERATED FILE]
A codegenerators/rubycodegenerationformbase.ui
A codegenerators/rubycodegenerationpolicy.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerationpolicy.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerationpolicypage.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerationpolicypage.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerator.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodegenerator.h [License: no copyright GPL (v2+)]
A codegenerators/rubycodeoperation.cpp [License: no copyright GPL (v2+)]
A codegenerators/rubycodeoperation.h [License: no copyright GPL (v2+)]
M +3 -3 codegenerators/rubywriter.cpp
M +1 -1 dialogs/settingsdlg.cpp
--- trunk/KDE/kdesdk/umbrello/umbrello/codegenerators/Makefile.am #437548:437549
@@ -20,6 +20,12 @@
cppheadercodeclassfielddeclarationblock.cpp \
cppcodegenerationpolicy.cpp cppcodegenerationpolicypage.cpp \
cppcodegenerationformbase.ui cppcodegenerationform.cpp \
+ rubycodegenerator.cpp rubycodeclassfield.cpp \
+ rubyclassifiercodedocument.cpp rubycodecomment.cpp rubycodedocumentation.cpp \
+ rubycodeoperation.cpp rubycodeaccessormethod.cpp \
+ rubyclassdeclarationblock.cpp rubycodeclassfielddeclarationblock.cpp \
+ rubycodegenerationpolicy.cpp rubycodegenerationpolicypage.cpp \
+ rubycodegenerationformbase.ui \
simplecodegenerator.cpp \
adawriter.cpp aswriter.cpp cppwriter.cpp javawriter.cpp jswriter.cpp \
idlwriter.cpp perlwriter.cpp rubywriter.cpp \
--- trunk/KDE/kdesdk/umbrello/umbrello/codegenerators/codegenfactory.cpp #437548:437549
@@ -23,6 +23,7 @@
// the new
#include "cppcodegenerator.h"
#include "javacodegenerator.h"
+#include "rubycodegenerator.h"
#include "xmlschemawriter.h"
// the old
@@ -143,7 +144,10 @@
} else if (cname == "PythonWriter") {
obj = new PythonWriter( doc, name);
} else if (cname == "RubyWriter") {
- obj = new RubyWriter( doc, name);
+ if (optionState.generalState.newcodegen)
+ obj = new RubyCodeGenerator(doc, name);
+ else
+ obj = new RubyWriter(doc, name);
} else if (cname == "SQLWriter") {
obj = new SQLWriter( doc, name);
} else if (cname == "XMLSchemaWriter") {
--- trunk/KDE/kdesdk/umbrello/umbrello/codegenerators/rubywriter.cpp #437548:437549
@@ -234,7 +234,7 @@
for (op=opList.first(); op ; op=opList.next()) {
QString methodName = cleanName(op->getName());
- QString commentedParams;
+ QStringList commentedParams;
// Skip destructors, and operator methods which
// can't be defined in ruby
@@ -276,7 +276,7 @@
int pos = re_params.search(docStr);
while (pos != -1) {
docStr.replace( re_params.cap(0),
- QString("@param _") + re_params.cap(1).lower() + re_params.cap(2) + "_");
+ QString("@param _") + re_params.cap(1).lower() + re_params.cap(2) + "_" );
commentedParams.append(re_params.cap(1).lower() + re_params.cap(2));
pos += re_params.matchedLength() + 3;
@@ -329,7 +329,7 @@
int j=0;
for( at = atl->first(); at ;at = atl->next(),j++) {
- QString nameStr = cppToRubyName(cleanName(at->getName()));
+ QString nameStr = cppToRubyName(at->getName());
if (j > 0) {
h << ", " << nameStr;
} else {
--- trunk/KDE/kdesdk/umbrello/umbrello/dialogs/settingsdlg.cpp #437548:437549
@@ -116,7 +116,7 @@
m_GeneralWidgets.tabdiagramsCB -> setChecked( m_pOptionState->generalState.tabdiagrams );
miscLayout -> addWidget( m_GeneralWidgets.tabdiagramsCB, 0, 1 );
- m_GeneralWidgets.newcodegenCB = new QCheckBox( i18n("Use new C++/Java generators"), m_GeneralWidgets.miscGB );
+ m_GeneralWidgets.newcodegenCB = new QCheckBox( i18n("Use new C++/Java/Ruby generators"), m_GeneralWidgets.miscGB );
m_GeneralWidgets.newcodegenCB -> setChecked( m_pOptionState->generalState.newcodegen );
miscLayout -> addWidget( m_GeneralWidgets.newcodegenCB, 1, 0 );
More information about the umbrello-devel
mailing list