From: nobu@... Date: 2017-02-02T06:50:14+00:00 Subject: [ruby-core:79389] [Ruby trunk Feature#13179][Feedback] Deep Hash Update Method 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: