[crystal][client] Add param default values to method definitions and refactor methods to use only keyword args if the method has more than one param#10673
Closed
cyangle wants to merge 8 commits intoOpenAPITools:masterfrom
Conversation
Contributor
Author
|
I'm breaking this PR into smaller ones |
5 tasks
It would be convenient to allow calling a method using keyward arg and also positional arg when there is only one paramter
def one_param_method(name : String)
puts name
end
one_param_method(name: "Pet")
one_param_method("Pet")
When there are more than one param, the methond only supports invoking with keyword arguments:
def two_param_method(*, name : String = "Pet", age : Int32)
puts "#{name} is #{age} years old"
end
two_param_method(age: 3) # => Pet is 3 years old
two_param_method("Pet", 3) # => Compilation Error: missing arguments: name, age
only nullable properties should emit_null
all optional and nullable required properties are nilable: They should have type {{dataType}}?
nullable required should also emit nulls in json format as the json field key is required
Handle file param separately to simplify to make it more readable
8b98d55 to
09f63ea
Compare
Contributor
Author
|
#10721 is extracted from this PR |
Member
|
@cyangle closing this one for the time being. Please file a new one if needed. Thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@wing328 This PR mainly refactored how it handles nillable and nullable types and default values. I got some ideas from the kotlin-client sample code
The breaking change is the requirement of keyword argument invoking style of methods which is needed to support setting default values
last in order is required for setting default values to positional params but it's not required in keyword args
There are other minor fixes. Check the details listed below, and you should also check the commit messages.
hasOnlyOneParam- sets to true when the method has only one paramPR checklist
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*.For Windows users, please run the script in Git BASH.
master(5.3.0),6.0.x