microsoft / microsoft/kiota-ruby
backing store support
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 5
- Forks
- 8
- Avg merge
- 11h 9m
- Merged PRs (30d)
- 24
Description
One major feature of Kiota clients that hasn't been implemented in Ruby is the backing store.
The main idea is to store values behind the models in another memory space instead of using fields/properties.
This enables scenarios like dirty tracking, data sync with other data sources and much more.
More information can be found in our conceptual documentation
TODO:
- Add a backing store interface in the abstractions
- Add a backed model interface in the abstractions
- Add an in memory backing store implementation in the abstractions
- Add a backing store factory interface in the abstractions
- Implement the factory for the in memory backing store
- Add a singleton for the backing store factory in the abstractions
- Add event hooks for the json parse node (on before, on after, etc...)
- Call the hooks when provided in the JSON implementation
- Copy the hooks when provided in the JSON implementation
- Implement factories for proxy
- implement those factories for the backing store
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 by comparing the Ruby abstractions and JSON serialization implementation with the linked Kiota .NET interfaces and implementations. Trace the existing parse-node factories and model abstractions before planning the backing store interfaces, in-memory implementation, singleton, event hooks, and proxy factories. Done means all listed TODO items are implemented with coverage for backing-store behavior and JSON hook handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100