Issue #13179 has been updated by Nobuyoshi Nakada.

Tracker changed from Bug to Feature
Status changed from Open to Feedback

`dig` is not only for `Hash` but also for `Array`, `Struct`, and `OpenStruct`.
What objects would you expect as intermediate containers if not present?

Regarding the name, `bury` occurred to me.
`Hash#dig=` might fit if `obj.method(arg,...) = val` syntax were possible.


----------------------------------------
Feature #13179: Deep Hash Update Method
https://bugs.ruby-lang.org/issues/13179#change-62816

* Author: Andy Bettisworth
* Status: Feedback
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
I came across a scenario where I needed the ability to update a deeply nested hash (Rails i18n yaml files). This seemed like something that would exist naturally in the DSL of ruby, but I could only find dig() method which only retrieves values if they exist. 24 hours later I wrote a update_deep_hash method (I wouldn't wish this type of recursive coding on anyone else within the Ruby community).

Attached is the solution I hacked together. My question is if we can have a Hash.dig() method which reaches into a deep hash can we expand on this to include update methods of similar nature?

---Files--------------------------------
update_deep_hash.rb (2.26 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>