Bug Report Checklist
Description
When pattern includes odd number of single quotes, the generated Ruby client code contains syntax errors.
openapi-generator version
$ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar version
4.0.0-SNAPSHOT
$ git log --oneline -n 1
0b66fa5c82 (HEAD -> master, origin/master, origin/HEAD) add servers to path, operation (#2048)
OpenAPI declaration file content or url
See: https://gist.github.com/autopp/e707d5d2ec36f7cfe6a3950d76d54b6f#file-swagger-yml
The point to notice in this example is that ' is included in the pattern constraint of the property y of the model x.
Command line used for generation
$ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate --skip-validate-spec -g ruby -o /tmp/gem -i 'https://gist.githubusercontent.com/autopp/e707d5d2ec36f7cfe6a3950d76d54b6f/raw/0ca732fa77402c3dcbb735e41eb5f6e5bc58462d/swagger.yml'
Steps to reproduce
- Run the above command to generate client code for Ruby.
- Run
ruby -c /tmp/gem/lib/openapi_client/models/x.rb to check syntax of the generated model code.
- Get errors in
lib/openapi_client/models/x.rb:
/tmp/gem/lib/openapi_client/models/x.rb:51: syntax error, unexpected '.'
...ust conform to the pattern /'/.')
... ^
/tmp/gem/lib/openapi_client/models/x.rb:60: syntax error, unexpected ')'
...y.nil? && @y !~ Regexp.new(/'/)
... ^
/tmp/gem/lib/openapi_client/models/x.rb:68: syntax error, unexpected '.'
...ust conform to the pattern /'/.'
... ^
/tmp/gem/lib/openapi_client/models/x.rb:206: unterminated string meets end of file
/tmp/gem/lib/openapi_client/models/x.rb:206: syntax error, unexpected end-of-input, expecting keyword_end
Related issues/PRs
#2067
Suggest a fix
escapeText of RubyClientCodegen seems to escape for double-quote string literals only. However, the corresponding template uses a single quote string.
I think it is difficult for the generator to determine whether the expansion destination is a single-quote string or a double-quote string. Instead, I think that it is better to unify it with a double-quote string in the template.
Bug Report Checklist
Description
When
patternincludes odd number of single quotes, the generated Ruby client code contains syntax errors.openapi-generator version
OpenAPI declaration file content or url
See: https://gist.github.com/autopp/e707d5d2ec36f7cfe6a3950d76d54b6f#file-swagger-yml
The point to notice in this example is that
'is included in the pattern constraint of the propertyyof the modelx.Command line used for generation
Steps to reproduce
ruby -c /tmp/gem/lib/openapi_client/models/x.rbto check syntax of the generated model code.lib/openapi_client/models/x.rb:Related issues/PRs
#2067
Suggest a fix
escapeTextofRubyClientCodegenseems to escape for double-quote string literals only. However, the corresponding template uses a single quote string.I think it is difficult for the generator to determine whether the expansion destination is a single-quote string or a double-quote string. Instead, I think that it is better to unify it with a double-quote string in the template.