[BUG] Generated Ruby client may contains unexpected interpolation when using enum
Created by: autopp
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
What's the version of OpenAPI Generator used? -
Have you search for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Bounty to sponsor the fix (example)
Description
When using enum
, the generated Ruby client code may contain an unexpected interpolation.
openapi-generator version
$ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar version
4.0.0-SNAPSHOT
$ git log --oneline -n 1
54d9c19c77 (HEAD -> master, origin/master, origin/HEAD) Use https URL to download dependencies (#2248)
OpenAPI declaration file content or url
See: https://gist.github.com/autopp/925901844b9c973fd3c86d06ea95c03a#file-swagger-yml
The point to notice in this example is that #{...}
is included in the enum
.
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/48160b45f1c17c950ba72feb971786c3/raw/974579f49d9a0eebff0455e54efce842eee64c9b/example.yml'
Steps to reproduce
- Run the above command to generate client code for Ruby.
-
lib/openapi_client/api/default_api.rb
contains unexpected interpolationdef foo_get_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: DefaultApi.foo_get ...' end allowable_values = ["^injected code: #{injected.code}$"]
In this example, injected.code
is executed when request to GET /foo
(And error may occur).
Related issues/PRs
Suggest a fix
(Same as #2088 (closed))
Curretly, RubyClientCodegen
dose not override escapeText
.
Should not this be overridden to accommodate Ruby's string literal characteristics?