diff --git a/modules/openapi-generator/src/main/resources/ruby-client/partial_model_enum_class.mustache b/modules/openapi-generator/src/main/resources/ruby-client/partial_model_enum_class.mustache index 4b8b5a0ffda..d2ddbff1977 100644 --- a/modules/openapi-generator/src/main/resources/ruby-client/partial_model_enum_class.mustache +++ b/modules/openapi-generator/src/main/resources/ruby-client/partial_model_enum_class.mustache @@ -2,6 +2,10 @@ {{{name}}} = {{{value}}}.freeze{{/enumVars}} {{/allowableValues}} + def self.all_vars + @all_vars ||= [{{#allowableValues}}{{#enumVars}}{{{name}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -13,8 +17,7 @@ # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = {{classname}}.constants.select { |c| {{classname}}::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #{{{classname}}}" if constantValues.empty? - value + return value if {{classname}}.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #{{{classname}}}" end end \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/ruby-client/partial_oneof_module_doc.mustache b/modules/openapi-generator/src/main/resources/ruby-client/partial_oneof_module_doc.mustache index 64a6c32dc85..f86cefe92be 100644 --- a/modules/openapi-generator/src/main/resources/ruby-client/partial_oneof_module_doc.mustache +++ b/modules/openapi-generator/src/main/resources/ruby-client/partial_oneof_module_doc.mustache @@ -60,6 +60,7 @@ require '{{{gemName}}}' # } {{/-last}} {{/mappedModels}} +``` {{/discriminator}} ### build diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/enum_class.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/enum_class.rb index cfb86babdbe..4b869b1b5dc 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/enum_class.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/enum_class.rb @@ -19,6 +19,10 @@ module Petstore EFG = "-efg".freeze XYZ = "(xyz)".freeze + def self.all_vars + @all_vars ||= [ABC, EFG, XYZ].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = EnumClass.constants.select { |c| EnumClass::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #EnumClass" if constantValues.empty? - value + return value if EnumClass.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #EnumClass" end end end diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum.rb index eebac71dd56..a2607e1d6c8 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum.rb @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnum.constants.select { |c| OuterEnum::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnum" if constantValues.empty? - value + return value if OuterEnum.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnum" end end end diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_default_value.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_default_value.rb index 9962be8508e..25b93ca5840 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_default_value.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_default_value.rb @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumDefaultValue.constants.select { |c| OuterEnumDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" if constantValues.empty? - value + return value if OuterEnumDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" end end end diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer.rb index e88e6690e13..0385366de48 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumInteger.constants.select { |c| OuterEnumInteger::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumInteger" if constantValues.empty? - value + return value if OuterEnumInteger.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumInteger" end end end diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer_default_value.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer_default_value.rb index 0f871b3f54e..e205433c9ff 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer_default_value.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/outer_enum_integer_default_value.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumIntegerDefaultValue.constants.select { |c| OuterEnumIntegerDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" if constantValues.empty? - value + return value if OuterEnumIntegerDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" end end end diff --git a/samples/client/petstore/ruby-autoload/lib/petstore/models/single_ref_type.rb b/samples/client/petstore/ruby-autoload/lib/petstore/models/single_ref_type.rb index ef4d14083d1..8b0b29af57f 100644 --- a/samples/client/petstore/ruby-autoload/lib/petstore/models/single_ref_type.rb +++ b/samples/client/petstore/ruby-autoload/lib/petstore/models/single_ref_type.rb @@ -18,6 +18,10 @@ module Petstore ADMIN = "admin".freeze USER = "user".freeze + def self.all_vars + @all_vars ||= [ADMIN, USER].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -29,9 +33,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = SingleRefType.constants.select { |c| SingleRefType::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #SingleRefType" if constantValues.empty? - value + return value if SingleRefType.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #SingleRefType" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/enum_class.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/enum_class.rb index cfb86babdbe..4b869b1b5dc 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/enum_class.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/enum_class.rb @@ -19,6 +19,10 @@ module Petstore EFG = "-efg".freeze XYZ = "(xyz)".freeze + def self.all_vars + @all_vars ||= [ABC, EFG, XYZ].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = EnumClass.constants.select { |c| EnumClass::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #EnumClass" if constantValues.empty? - value + return value if EnumClass.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #EnumClass" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum.rb index eebac71dd56..a2607e1d6c8 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum.rb @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnum.constants.select { |c| OuterEnum::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnum" if constantValues.empty? - value + return value if OuterEnum.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnum" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_default_value.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_default_value.rb index 9962be8508e..25b93ca5840 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_default_value.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_default_value.rb @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumDefaultValue.constants.select { |c| OuterEnumDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" if constantValues.empty? - value + return value if OuterEnumDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer.rb index e88e6690e13..0385366de48 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumInteger.constants.select { |c| OuterEnumInteger::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumInteger" if constantValues.empty? - value + return value if OuterEnumInteger.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumInteger" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer_default_value.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer_default_value.rb index 0f871b3f54e..e205433c9ff 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer_default_value.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/outer_enum_integer_default_value.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumIntegerDefaultValue.constants.select { |c| OuterEnumIntegerDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" if constantValues.empty? - value + return value if OuterEnumIntegerDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" end end end diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/models/single_ref_type.rb b/samples/client/petstore/ruby-faraday/lib/petstore/models/single_ref_type.rb index ef4d14083d1..8b0b29af57f 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/models/single_ref_type.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/models/single_ref_type.rb @@ -18,6 +18,10 @@ module Petstore ADMIN = "admin".freeze USER = "user".freeze + def self.all_vars + @all_vars ||= [ADMIN, USER].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -29,9 +33,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = SingleRefType.constants.select { |c| SingleRefType::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #SingleRefType" if constantValues.empty? - value + return value if SingleRefType.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #SingleRefType" end end end diff --git a/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb b/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb index cfb86babdbe..4b869b1b5dc 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/enum_class.rb @@ -19,6 +19,10 @@ module Petstore EFG = "-efg".freeze XYZ = "(xyz)".freeze + def self.all_vars + @all_vars ||= [ABC, EFG, XYZ].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = EnumClass.constants.select { |c| EnumClass::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #EnumClass" if constantValues.empty? - value + return value if EnumClass.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #EnumClass" end end end 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 eebac71dd56..a2607e1d6c8 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum.rb @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnum.constants.select { |c| OuterEnum::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnum" if constantValues.empty? - value + return value if OuterEnum.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnum" end end end 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 9962be8508e..25b93ca5840 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 @@ -19,6 +19,10 @@ module Petstore APPROVED = "approved".freeze DELIVERED = "delivered".freeze + def self.all_vars + @all_vars ||= [PLACED, APPROVED, DELIVERED].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumDefaultValue.constants.select { |c| OuterEnumDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" if constantValues.empty? - value + return value if OuterEnumDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumDefaultValue" end end end diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer.rb index e88e6690e13..0385366de48 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumInteger.constants.select { |c| OuterEnumInteger::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumInteger" if constantValues.empty? - value + return value if OuterEnumInteger.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumInteger" end end end diff --git a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer_default_value.rb b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer_default_value.rb index 0f871b3f54e..e205433c9ff 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer_default_value.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/outer_enum_integer_default_value.rb @@ -19,6 +19,10 @@ module Petstore N1 = 1.freeze N2 = 2.freeze + def self.all_vars + @all_vars ||= [N0, N1, N2].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -30,9 +34,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = OuterEnumIntegerDefaultValue.constants.select { |c| OuterEnumIntegerDefaultValue::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" if constantValues.empty? - value + return value if OuterEnumIntegerDefaultValue.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #OuterEnumIntegerDefaultValue" end end end diff --git a/samples/client/petstore/ruby/lib/petstore/models/single_ref_type.rb b/samples/client/petstore/ruby/lib/petstore/models/single_ref_type.rb index ef4d14083d1..8b0b29af57f 100644 --- a/samples/client/petstore/ruby/lib/petstore/models/single_ref_type.rb +++ b/samples/client/petstore/ruby/lib/petstore/models/single_ref_type.rb @@ -18,6 +18,10 @@ module Petstore ADMIN = "admin".freeze USER = "user".freeze + def self.all_vars + @all_vars ||= [ADMIN, USER].freeze + end + # Builds the enum from string # @param [String] The enum value in the form of the string # @return [String] The enum value @@ -29,9 +33,8 @@ module Petstore # @param [String] The enum value in the form of the string # @return [String] The enum value def build_from_hash(value) - constantValues = SingleRefType.constants.select { |c| SingleRefType::const_get(c) == value } - raise "Invalid ENUM value #{value} for class #SingleRefType" if constantValues.empty? - value + return value if SingleRefType.all_vars.include?(value) + raise "Invalid ENUM value #{value} for class #SingleRefType" end end end