ruby-grape / ruby-grape/grape-entity
`with_options` doesn't do deep merge
Open
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 729
- Forks
- 154
- PR merge metrics
- No merged PRs in 30d
Description
with_options documentation: {required: true, type: 'integer'} do
expose :posts_count, as: :posts, documentation: {example: 7}
expose :followers_count, as: :followers, documentation: {example: 105}
expose :following_count, as: :following, documentation: {example: 52}
expose :bookmarks_count, as: :bookmarks, documentation: {example: 22}
end
the example doesn't work, since documentation from nested attributes overrides parent's one.
I think they should be deep merged
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the with_options entry point and trace how parent and nested documentation options are combined. Reproduce the example from the issue, then add a regression test showing that nested attributes retain required and type while adding example values. Done means the nested documentation is deep-merged rather than replaced.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100