diff --git a/modules/swagger-codegen/src/main/resources/ruby/api.mustache b/modules/swagger-codegen/src/main/resources/ruby/api.mustache index 7071e72e849..8366246f467 100644 --- a/modules/swagger-codegen/src/main/resources/ruby/api.mustache +++ b/modules/swagger-codegen/src/main/resources/ruby/api.mustache @@ -50,9 +50,16 @@ module {{moduleName}} {{/required}} {{^required}} {{#isEnum}} + {{#collectionFormat}} + if opts[:'{{{paramName}}}'] && !opts[:'{{{paramName}}}'].all?{|item| [{{#allowableValues}}{{#values}}'{{{this}}}'{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}].include?(item)} + fail ArgumentError, 'invalid value for "{{{paramName}}}", must include one of {{#allowableValues}}{{#values}}{{{this}}}{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}' + end + {{/collectionFormat}} + {{^collectionFormat}} if opts[:'{{{paramName}}}'] && ![{{#allowableValues}}{{#values}}'{{{this}}}'{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}].include?(opts[:'{{{paramName}}}']) fail ArgumentError, 'invalid value for "{{{paramName}}}", must be one of {{#allowableValues}}{{#values}}{{{this}}}{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}' end + {{/collectionFormat}} {{/isEnum}} {{/required}} {{#hasValidation}} diff --git a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb index 0eaba370798..3500dfbb52f 100644 --- a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb +++ b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb @@ -275,20 +275,20 @@ module Petstore if @api_client.config.debugging @api_client.config.logger.debug "Calling API: FakeApi.test_enum_parameters ..." end - if opts[:'enum_form_string_array'] && !['>', '$'].include?(opts[:'enum_form_string_array']) - fail ArgumentError, 'invalid value for "enum_form_string_array", must be one of >, $' + if opts[:'enum_form_string_array'] && !opts[:'enum_form_string_array'].all?{|item| ['>', '$'].include?(item)} + fail ArgumentError, 'invalid value for "enum_form_string_array", must include one of >, $' end if opts[:'enum_form_string'] && !['_abc', '-efg', '(xyz)'].include?(opts[:'enum_form_string']) fail ArgumentError, 'invalid value for "enum_form_string", must be one of _abc, -efg, (xyz)' end - if opts[:'enum_header_string_array'] && !['>', '$'].include?(opts[:'enum_header_string_array']) - fail ArgumentError, 'invalid value for "enum_header_string_array", must be one of >, $' + if opts[:'enum_header_string_array'] && !opts[:'enum_header_string_array'].all?{|item| ['>', '$'].include?(item)} + fail ArgumentError, 'invalid value for "enum_header_string_array", must include one of >, $' end if opts[:'enum_header_string'] && !['_abc', '-efg', '(xyz)'].include?(opts[:'enum_header_string']) fail ArgumentError, 'invalid value for "enum_header_string", must be one of _abc, -efg, (xyz)' end - if opts[:'enum_query_string_array'] && !['>', '$'].include?(opts[:'enum_query_string_array']) - fail ArgumentError, 'invalid value for "enum_query_string_array", must be one of >, $' + if opts[:'enum_query_string_array'] && !opts[:'enum_query_string_array'].all?{|item| ['>', '$'].include?(item)} + fail ArgumentError, 'invalid value for "enum_query_string_array", must include one of >, $' end if opts[:'enum_query_string'] && !['_abc', '-efg', '(xyz)'].include?(opts[:'enum_query_string']) fail ArgumentError, 'invalid value for "enum_query_string", must be one of _abc, -efg, (xyz)'