Fix regexp in ruby-client (#1521)

* Fix regexp in ruby-client

* Remove tests for unknown regexp patterns
This commit is contained in:
meganemura 2018-11-28 17:40:58 +09:00 committed by William Cheng
parent 9b99b6b6bf
commit ebf67e683c
4 changed files with 7 additions and 41 deletions

View File

@ -147,20 +147,7 @@ abstract class AbstractRubyCodegen extends DefaultCodegen implements CodegenConf
} }
public String toRegularExpression(String pattern) { public String toRegularExpression(String pattern) {
if (StringUtils.isEmpty(pattern)) { return addRegularExpressionDelimiter(pattern);
return pattern;
}
// We don't escape \ in string since Ruby doesn't like \ escaped in regex literal
String regexString = pattern;
if (!regexString.startsWith("/")) {
regexString = "/" + regexString;
}
if (StringUtils.countMatches(regexString, '/') == 1) {
// we only have forward slash inserted at start... adding one to end
regexString = regexString + "/";
}
return regexString;
} }
@Override @Override

View File

@ -319,13 +319,7 @@ public class RubyClientCodegenTest {
Assert.assertEquals(op.allParams.get(0).pattern, "/^pattern$/"); Assert.assertEquals(op.allParams.get(0).pattern, "/^pattern$/");
// pattern_two_slashes '/^pattern$/i' // pattern_two_slashes '/^pattern$/i'
Assert.assertEquals(op.allParams.get(1).pattern, "/^pattern$/i"); Assert.assertEquals(op.allParams.get(1).pattern, "/^pattern$/i");
// pattern_one_slash_start '/^pattern$'
Assert.assertEquals(op.allParams.get(2).pattern, "/^pattern$/");
// pattern_one_slash_end '^pattern$/'
Assert.assertEquals(op.allParams.get(3).pattern, "/^pattern$/");
// pattern_one_slash_near_end '^pattern$/im'
Assert.assertEquals(op.allParams.get(4).pattern, "/^pattern$/im");
// pattern_dont_escape_backslash '/^pattern\d{3}$/i' NOTE: the double \ is to escape \ in string but is read as single \ // pattern_dont_escape_backslash '/^pattern\d{3}$/i' NOTE: the double \ is to escape \ in string but is read as single \
Assert.assertEquals(op.allParams.get(5).pattern, "/^pattern\\d{3}$/i"); Assert.assertEquals(op.allParams.get(2).pattern, "/^pattern\\d{3}$/i");
} }
} }

View File

@ -25,21 +25,6 @@ paths:
schema: schema:
type: string type: string
pattern: '/^pattern$/i' pattern: '/^pattern$/i'
- name: pattern_one_slash_start
in: header
schema:
type: string
pattern: '/^pattern$'
- name: pattern_one_slash_end
in: header
schema:
type: string
pattern: '^pattern$/'
- name: pattern_one_slash_near_end
in: header
schema:
type: string
pattern: '^pattern$/im'
- name: pattern_dont_escape_backslash - name: pattern_dont_escape_backslash
in: header in: header
schema: schema:

View File

@ -195,8 +195,8 @@ module Petstore
invalid_properties.push('invalid value for "byte", byte cannot be nil.') invalid_properties.push('invalid value for "byte", byte cannot be nil.')
end end
if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$) if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
invalid_properties.push('invalid value for "byte", must conform to the pattern /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$.') invalid_properties.push('invalid value for "byte", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.')
end end
if @date.nil? if @date.nil?
@ -234,7 +234,7 @@ module Petstore
return false if !@double.nil? && @double < 67.8 return false if !@double.nil? && @double < 67.8
return false if !@string.nil? && @string !~ Regexp.new(/[a-z]/i) return false if !@string.nil? && @string !~ Regexp.new(/[a-z]/i)
return false if @byte.nil? return false if @byte.nil?
return false if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$) return false if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
return false if @date.nil? return false if @date.nil?
return false if @password.nil? return false if @password.nil?
return false if @password.to_s.length > 64 return false if @password.to_s.length > 64
@ -333,8 +333,8 @@ module Petstore
fail ArgumentError, 'byte cannot be nil' fail ArgumentError, 'byte cannot be nil'
end end
if byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$) if byte !~ Regexp.new(/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/)
fail ArgumentError, 'invalid value for "byte", must conform to the pattern /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$.' fail ArgumentError, 'invalid value for "byte", must conform to the pattern /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.'
end end
@byte = byte @byte = byte