Skip to content

Commit 9cdd532

Browse files
committed
Merge pull request #2270 from wing328/ruby_prefix_suffic
[Ruby] add prefix, suffix support to Ruby's model
2 parents 724753f + b5b8b4d commit 9cdd532

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RubyClientCodegen.java

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ public RubyClientCodegen() {
5555
modelTestTemplateFiles.put("model_test.mustache", ".rb");
5656
apiTestTemplateFiles.put("api_test.mustache", ".rb");
5757

58-
typeMapping.clear();
59-
languageSpecificPrimitives.clear();
60-
6158
setReservedWordsLowerCase(
6259
Arrays.asList(
6360
// local variable names used in API methods (endpoints)
@@ -71,11 +68,24 @@ public RubyClientCodegen() {
7168
"if", "not", "return", "undef", "yield")
7269
);
7370

71+
typeMapping.clear();
72+
languageSpecificPrimitives.clear();
73+
74+
// primitives in ruby lang
7475
languageSpecificPrimitives.add("int");
7576
languageSpecificPrimitives.add("array");
7677
languageSpecificPrimitives.add("map");
7778
languageSpecificPrimitives.add("string");
79+
// primitives in the typeMapping
80+
languageSpecificPrimitives.add("String");
81+
languageSpecificPrimitives.add("Integer");
82+
languageSpecificPrimitives.add("Float");
83+
languageSpecificPrimitives.add("Date");
7884
languageSpecificPrimitives.add("DateTime");
85+
languageSpecificPrimitives.add("BOOLEAN");
86+
languageSpecificPrimitives.add("Array");
87+
languageSpecificPrimitives.add("Hash");
88+
languageSpecificPrimitives.add("File");
7989

8090
typeMapping.put("string", "String");
8191
typeMapping.put("char", "String");
@@ -317,7 +327,7 @@ public String getSwaggerType(Property p) {
317327
String type = null;
318328
if (typeMapping.containsKey(swaggerType)) {
319329
type = typeMapping.get(swaggerType);
320-
if (languageSpecificPrimitives.contains(type)) {
330+
if (languageSpecificPrimitives.contains(type)) {
321331
return type;
322332
}
323333
} else {
@@ -333,7 +343,6 @@ public String getSwaggerType(Property p) {
333343
public String toVarName(String name) {
334344
// sanitize name
335345
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
336-
337346
// if it's all uppper case, convert to lower case
338347
if (name.matches("^[A-Z_]*$")) {
339348
name = name.toLowerCase();
@@ -361,6 +370,14 @@ public String toParamName(String name) {
361370
public String toModelName(String name) {
362371
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
363372

373+
if (!StringUtils.isEmpty(modelNamePrefix)) {
374+
name = modelNamePrefix + "_" + name;
375+
}
376+
377+
if (!StringUtils.isEmpty(modelNameSuffix)) {
378+
name = name + "_" + modelNameSuffix;
379+
}
380+
364381
// model name cannot use reserved keyword, e.g. return
365382
if (isReservedWord(name)) {
366383
String modelName = camelize("object_" + name);
@@ -375,6 +392,15 @@ public String toModelName(String name) {
375392

376393
@Override
377394
public String toModelFilename(String name) {
395+
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
396+
397+
if (!StringUtils.isEmpty(modelNamePrefix)) {
398+
name = modelNamePrefix + "_" + name;
399+
}
400+
401+
if (!StringUtils.isEmpty(modelNameSuffix)) {
402+
name = name + "_" + modelNameSuffix;
403+
}
378404
// model name cannot use reserved keyword, e.g. return
379405
if (isReservedWord(name)) {
380406
String filename = underscore("object_" + name);
@@ -398,12 +424,12 @@ public String toApiFilename(String name) {
398424

399425
@Override
400426
public String toApiTestFilename(String name) {
401-
return toApiName(name) + "_spec";
427+
return toApiFilename(name) + "_spec";
402428
}
403429

404430
@Override
405431
public String toModelTestFilename(String name) {
406-
return toModelName(name) + "_spec";
432+
return toModelFilename(name) + "_spec";
407433
}
408434

409435
@Override

0 commit comments

Comments
 (0)