Skip to content

Fix dynamic REST property lookup - #1479

Open
efegokdemir wants to merge 2 commits into
Shopify:mainfrom
efegokdemir:efe/fix-rest-dynamic-methods
Open

efegokdemir wants to merge 2 commits into
Shopify:mainfrom
efegokdemir:efe/fix-rest-dynamic-methods

Conversation

@efegokdemir

Copy link
Copy Markdown

Description

Fixes #1272 and #1273

Unknown REST property getters now raise NoMethodError, and respond_to? reports dynamic properties correctly. Dynamic setters and aliased fields remain supported; write operations still treat an absent primary key as nil.

How has this been tested?

The focused regression tests pass (4 runs, 16 assertions). The FulfillmentRequest and ResourceFeedback tests across API versions pass (119 runs, 119 assertions). RuboCop passes for the changed Ruby files.

The full REST wrapper suite ran on Ruby 4.0.7/Minitest 6 before the internal missing-key adjustment and reported 10,884 runs with 147 errors. It was not rerun after that adjustment. srb tc reports two errors outside these changes: an REXML RBI signature conflict and a missing override on AuthQuery#hmac.

Checklist:

  • My commit message follow the pattern described in here
  • I have performed a self-review of my own code.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have updated the project documentation.
  • I have added a changelog line.

Handle unsupported method names without leaking NameError and retain
computed getters when reading optional resource identifiers. Keep internal
client access private in test mocks.

Correct dispute evidence description types and validate the default-address
field without invoking its action method, so REST response checks remain
non-vacuous.

This branch has not been deployed

No deployments
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.

API objects return nil when dereferenced with non-existing method

1 participant