Repository navigation
fix(ruby): dispatch every response shape to the right request adapter - #8256
Merged
Vincent Biret (baywet) merged 2 commits intoSep 29, 2026
Merged
Vincent Biret (baywet) merged 2 commits into
Vincent Biret (baywet) merged 2 commits into
Conversation
Vincent Biret (baywet)
previously approved these changes
Sep 22, 2026
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 22, 2026 14:06
719fa2f to
24917ba
Compare
Vincent Biret (baywet)
self-requested a review
September 22, 2026 14:09
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 22, 2026 14:59
24917ba to
9788b6d
Compare
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 22, 2026 16:17
9788b6d to
65af765
Compare
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 22, 2026 17:33
65af765 to
f3973cc
Compare
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 22, 2026 18:02
f3973cc to
48adf57
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
… method - void, collection, scalar, enum and binary responses all went through send_async, which only reads a single object - binary is now StringIO; only a whole body is a stream, a collection of binary values is a payload - enum collections were generated as object collections, calling create_from_discriminator_value on a plain Hash - scalar request bodies went through set_content_from_parsable and failed to serialize - int64, double, decimal, int8, uint8 and the base64 formats deserialized through constants nothing defines - a date was read with get_time_value because the primitive type map collapsed Date onto Time - the request body was only set when a request configuration parameter was present - a resolved model keeps its factory even when named like a primitive, binary or void - appsettings.json moves to the 0.22.0 runtime gems
Andrea Peruffo (andreaTP)
force-pushed
the
fix/ruby-send-method-dispatch
branch
from
September 29, 2026 14:43
69c69b6 to
3397542
Compare
Member
|
Andrea Peruffo (@andreaTP) I think we're getting really close here, maybe missing additional tests?
|
Contributor
Author
|
Vincent Biret (@baywet) seems like we are finally here 🎉 |
Vincent Biret (baywet)
approved these changes
Sep 29, 2026
Vincent Biret (baywet)
left a comment
Member
There was a problem hiding this comment.
Thank you for making the changes!
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.


Generated Ruby clients only ever called
send_async, which reads a single object, so mostresponse shapes were broken: void raised
factory cannot be null, binary raised on anundefined
Binaryconstant, scalars emitted a bare lowercase type name, and a collection ofmodels silently returned one empty model.
Dispatches to all five request adapter methods, mirroring the Python generator. Also fixes
enum collections, scalar and binary request bodies, the
int64/double/decimal/int8/uint8/base64 formats, and adatebeing read withget_time_value.Requires the runtime gems at 0.22.0, already released, so the pins move with it.
it/ruby/spec/basic/integration_test_basic.rbhas been commented out since it was written.It now makes a real call and asserts the typed error.
Binary upload still fails in
FaradayRequestAdapter, which calls.empty?on theStringIObody. Generator side is correct, that is the remaining half of kiota-ruby#54.
fixes microsoft/kiota-ruby#42,
fixes microsoft/kiota-ruby#67
fixes microsoft/kiota-ruby#125.
Covers items 2, 3 and 6 of #7956.