From 5c571b0e1fd0a4480f995e5626aa26101d27d080 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Fri, 5 Jan 2024 15:00:52 +0800 Subject: [PATCH] add enum name mapping support to ruby generators (#17537) --- bin/configs/ruby.yaml | 2 ++ .../openapitools/codegen/languages/RubyClientCodegen.java | 8 ++++++++ .../petstore/ruby/lib/petstore/models/outer_enum.rb | 4 ++-- .../ruby/lib/petstore/models/outer_enum_default_value.rb | 4 ++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/bin/configs/ruby.yaml b/bin/configs/ruby.yaml index bb8e37cbff7..75b92f92eaf 100644 --- a/bin/configs/ruby.yaml +++ b/bin/configs/ruby.yaml @@ -15,3 +15,5 @@ nameMappings: parameterNameMappings: _type: underscore_type type_: type_with_underscore +enumNameMappings: + delivered: SHIPPED diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java index 8fdc907aa8f..d3b90ce2eea 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java @@ -508,6 +508,10 @@ public class RubyClientCodegen extends AbstractRubyCodegen { @Override public String toEnumVarName(String name, String datatype) { + if (enumNameMapping.containsKey(name)) { + return enumNameMapping.get(name); + } + if (name.length() == 0) { return "EMPTY"; } @@ -535,6 +539,10 @@ public class RubyClientCodegen extends AbstractRubyCodegen { @Override public String toEnumName(CodegenProperty property) { + if (enumNameMapping.containsKey(property.name)) { + return enumNameMapping.get(property.name); + } + String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT); enumName = enumName.replaceFirst("^_", ""); enumName = enumName.replaceFirst("_$", ""); diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb index 4b36df83400..491f6604837 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb @@ -17,10 +17,10 @@ module Petstore class OuterEnum PLACED = "placed".freeze APPROVED = "approved".freeze - DELIVERED = "delivered".freeze + SHIPPED = "delivered".freeze def self.all_vars - @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + @all_vars ||= [PLACED, APPROVED, SHIPPED].freeze end # Builds the enum from string diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_default_value.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_default_value.rb index e40b9a7f751..8f371926ef0 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_default_value.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_default_value.rb @@ -17,10 +17,10 @@ module Petstore class OuterEnumDefaultValue PLACED = "placed".freeze APPROVED = "approved".freeze - DELIVERED = "delivered".freeze + SHIPPED = "delivered".freeze def self.all_vars - @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + @all_vars ||= [PLACED, APPROVED, SHIPPED].freeze end # Builds the enum from string