Skip to content

Dx 5046 remove jsonparse from ruby gem and add RBS#16

Merged
johnpmitsch merged 18 commits into
mainfrom
dx-5046-remove-jsonparse-from-ruby-gemdx-5046-remove-jsonparse-from-ruby-gem
Apr 27, 2026
Merged

Dx 5046 remove jsonparse from ruby gem and add RBS#16
johnpmitsch merged 18 commits into
mainfrom
dx-5046-remove-jsonparse-from-ruby-gemdx-5046-remove-jsonparse-from-ruby-gem

Conversation

@johnpmitsch

@johnpmitsch johnpmitsch commented Apr 27, 2026

Copy link
Copy Markdown
Collaborator

Note

Medium Risk
Ruby’s public API shape changes from JSON-string responses to native Hash/Array (with indifferent access) and introduces a new Ruby wrapper layer, which may break existing callers relying on JSON.parse or exact return types.

Overview
Ruby binding now returns native Ruby values instead of JSON strings by serializing Rust responses via serde_magnus, and moves the Magnus-exposed classes under QuicknodeSdk::Native::*.

Adds a pure-Ruby wrapper layer (QuicknodeSdk::SDK plus per-client delegators) that forwards calls to the native clients while supporting bare/kwargs/positional-hash call styles and wrapping returned hashes in QuicknodeSdk::IndifferentHash for symbol/string key access.

Updates documentation and Ruby examples to remove JSON.parse, adds hashie as a runtime dependency, expands gem packaging to include the new Ruby files and signatures, and introduces manually maintained RBS typings plus Solargraph/Steep config for editor/LSP support.

Reviewed by Cursor Bugbot for commit 920623a. Bugbot is set up for automated code reviews on this repo. Configure here.

…lisions

Hashie::Mash exposes fields as methods, which collides with built-ins like
Hash#chain (Enumerable) and Hash#methods (Kernel) — emitting noisy warnings
on every API field with that name and silently returning the wrong value
under dot-notation. Replaced with a Hash subclass using
Hashie::Extensions::IndifferentAccess. Symbol- and string-key access still
work; dot-notation is gone. Examples and docs updated to use symbol keys
as the primary access style.
@linear

linear Bot commented Apr 27, 2026

Copy link
Copy Markdown

@johnpmitsch johnpmitsch changed the title Dx 5046 remove jsonparse from ruby gemdx 5046 remove jsonparse from ruby gem Dx 5046 remove jsonparse from ruby gem and add RBS Apr 27, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 652a6f5. Configure here.

Comment thread ruby/lib/quicknode_sdk/clients/admin.rb Outdated
Comment thread ruby/lib/quicknode_sdk/clients/admin.rb
@johnpmitsch johnpmitsch merged commit a8eb194 into main Apr 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant