OpenAPITools / OpenAPITools/openapi-generator
[BUG][Ruby] Description `undefined method build_from_hash` in Ruby generated code
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue?
- Have you validated the input using an OpenAPI validator?
- Have you tested with the latest master to confirm the issue still exists?
- Have you searched for related issues/PRs?
- What's the actual output vs expected output?
- [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
Error message: failed with the exception 'undefined method 'build_from_hash' for module Builder::Filter
Previous builds of my Ruby files for my gem using 7.14.0 generated code that contained:
# Builds the object
# @param [Mixed] Data to be matched against the list of oneOf items
# @return [Object] Returns the model or the data itself
def build(data)
discriminator_value = data[openapi_discriminator_name]
return nil if discriminator_value.nil?
klass = openapi_discriminator_mapping[discriminator_value.to_s.to_sym]
return nil unless klass
resolved_klass = Builder.const_get(klass)
resolved_klass.build(data)
end
while version 7.17.0 generates
# Builds the object
# @param [Mixed] Data to be matched against the list of oneOf items
# @return [Object] Returns the model or the data itself
def build(data)
discriminator_value = data[openapi_discriminator_name]
return nil if discriminator_value.nil?
klass = openapi_discriminator_mapping[discriminator_value.to_s.to_sym]
return nil unless klass
Builder.const_get(klass).build_from_hash(data)
end
this last line, build_from_hash is blowing up my call, while the code generated with 7.14.0 successfully processes the same request.
openapi-generator version
7.17.0
OpenAPI declaration file content or url
files are the same between generated versions
Generation Details
$ openapi-generator generate -c generator-config.json
generator-config.json:
{
"generatorName": "ruby",
"inputSpec": "./builder.yaml",
"outputDir": "./",
"packageName": "my_builder",
"gemName": "my_builder",
"gemAuthor": "MyCompany",
"gemHomepage": "https://github.com/<my_company>/builder-ruby-sdk",
"gemVersion": "0.0.24",
"moduleName": "Builder",
"templateDir": "./templates"
}
Steps to reproduce
Related issues/PRs
Suggest a fix
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with generator-config.json and the custom templates referenced by templateDir, then compare the Ruby output from 7.14.0 and 7.17.0 around the discriminator build method. Reproduce with builder.yaml and verify that the generated code handles the same request without the undefined build_from_hash error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, ruby
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100