Add test coverage for Object#with_options with Hash-like argument
#47376
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.
Motivation / Background
Add test coverage for existing
Object#with_optionssupport forHash-like objects.Detail
The current implementation expects "Hash-like" to mean that the argument implements both
Hash#deep_mergeand#to_hash(to be called explicitly with#to_hashand implicitly with**).This coverage is an explicit commitment to (what has so far been implicit) support for objects that do not descend from
Hash, but implementHashmethods. This includes classes like ActionController::Parameters (which inherits fromObject) and others like it that return instances of a class other thanHashwhen callingdeep_merge.Checklist
Before submitting the PR make sure the following are checked:
[Fix #issue-number]