Actions
Feature #19699
closedNeed a way to store values like dig
Status:
Closed
Assignee:
-
Target version:
-
Description
Currently, there is no way to perform a .store
operation on nested hashes in Ruby as there is for accessing them using .dig
, so I would like to propose something like:
Hash#dig_store(*args, **kwargs, arg = nil), which fills the value at *args with **kwargs if the value at *args is a hash, or with arg if the value is something else. Here are some examples:
a = {}
a.dig_store(:a, :b, :c, :d, 10)
=> {:a=>{:b=>{:c=>{:d=>10}}}}
a = {}
a.dig_store(:a, :b, :c, :d, a: 10, b: 20, c: 30)
=> {:a=>{:b=>{:c=>{:d=>{:a=>10, :b=>20, :c=>30}}}}}
a = {a: {b: {c: "test"}}}
a.dig_store(:a, :b, :c, "123")
=> {:a=>{:b=>{:c=>"123"}}}
a = {a: {b: {c: {}}}
a.dig_store(:a, :b, :c, a: 10, b: 20)
=> {:a=>{:b=>{:c=>{:a=>10, :b=>20}}}}
I'm not that skilled on Ruby (actually a Junior developer), but i'm looking forward to implementing it if the core team approves it
Actions
Like0
Like0Like0Like0Like0Like0