- Status changed from Open to Closed
Thank you for the proposal, and thank you @zverok (Victor Shepelev) for the detailed explanation.
I agree with @zverok (Victor Shepelev). The absence of #dig on Data is intentional. Data is designed as a base for composite value objects, not as a navigable container. This is the same reason it does not have #[], #each, or Enumerable.
The dig family (Hash#dig, Array#dig, Struct#dig) is built for objects that expose #[] for element access. Data deliberately does not provide #[], so adding #dig alone would be inconsistent with the rest of the language.
I would also like to keep Data's API small. When a Data-based class is used in a container-like role, defining #dig yourself is straightforward, as @zverok (Victor Shepelev) showed.
So I will decline this one. Thank you again for thinking it through.
Matz