add pattern check to ruby model

This commit is contained in:
wing328
2016-04-25 22:23:23 +08:00
parent 0e58265eb5
commit 4854b79a31
6 changed files with 32 additions and 6 deletions

View File

@@ -62,7 +62,7 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
invalid_properties = Array.new
{{#isEnum}}
allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if @{{{name}}} && !allowed_values.include?(@{{{name}}})
if @{{{name}}} && !allowed_values.include?({{{name}}})
invalid_properties.push("invalid value for '{{{name}}}', must be one of #{allowed_values}.")
end
@@ -96,6 +96,12 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
invalid_properties.push("invalid value for '{{{name}}}', must conform to the pattern {{{pattern}}}.")
end
{{/pattern}}
{{/hasValidation}}
return invalid_properties
end
@@ -141,6 +147,12 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
return false
end
{{/pattern}}
{{/hasValidation}}
{{/vars}}
end
@@ -151,7 +163,7 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
# @param [Object] {{{name}}} Object to be assigned
def {{{name}}}=({{{name}}})
allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if {{{name}}} && !allowed_values.include?(@{{{name}}})
if {{{name}}} && !allowed_values.include?({{{name}}})
fail ArgumentError, "invalid value for '{{{name}}}', must be one of #{allowed_values}."
end
@{{{name}}} = {{{name}}}
@@ -191,6 +203,12 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
fail ArgumentError, "invalid value for '{{{name}}}', must conform to the pattern {{{pattern}}}."
end
{{/pattern}}
@{{{name}}} = {{{name}}}
end

View File

@@ -787,7 +787,7 @@ definitions:
minimum: 67.8
string:
type: string
pattern: /[az]/i
pattern: /[a-z]/i
byte:
type: string
format: byte

View File

@@ -8,7 +8,7 @@ This SDK is automatically generated by the [Swagger Codegen](https://github.com/
- API version: 1.0.0
- Package version: 1.0.0
- Build date: 2016-04-25T21:47:45.004+08:00
- Build date: 2016-04-25T22:22:56.750+08:00
- Build package: class io.swagger.codegen.languages.RubyClientCodegen
## Installation

View File

@@ -190,6 +190,10 @@ module Petstore
return false
end
if @string !~ Regexp.new(/[a-z]/i)
return false
end
if @byte.nil?
return false
end
@@ -309,6 +313,10 @@ module Petstore
fail ArgumentError, "string cannot be nil"
end
if @string !~ Regexp.new(/[a-z]/i)
fail ArgumentError, "invalid value for 'string', must conform to the pattern /[a-z]/i."
end
@string = string
end

View File

@@ -102,7 +102,7 @@ module Petstore
# @return true if the model is valid
def valid?
allowed_values = ["placed", "approved", "delivered"]
if @status && !allowed_values.include?(status)
if @status && !allowed_values.include?(@status)
return false
end
end

View File

@@ -112,7 +112,7 @@ module Petstore
end
allowed_values = ["available", "pending", "sold"]
if @status && !allowed_values.include?(status)
if @status && !allowed_values.include?(@status)
return false
end
end