From: briank@... Date: 2019-07-14T13:29:42+00:00 Subject: [ruby-core:93759] [Ruby master Feature#13179] Deep Hash Update Method Issue #13179 has been updated by bkatzung (Brian Katzung). Gem XKeys, since 2014. ``` require 'xkeys' h = {}.extend XKeys::Auto # auto Hash/Array h[:accent, 2, :original] = "the value to set" # {:accent=>[nil, nil, {:original=>"the value to set"}]} h = {}.extend XKeys::Hash # Hash only h[:accent,2,:original]='the value to set' # {:accent=>{2=>{:original=>"the value to set"}}} a = [].extend XKeys::Auto a[2, 1, :original] = "the value to set" # [nil, nil, [nil, {:original=>"the value to set"}]] a[2, 1] # (slice 2, 1) [[nil, {:original=>"the value to set"}]] a[2, 1, {}] # (a[2][1]) {:original=>"the value to set"} ``` ---------------------------------------- Feature #13179: Deep Hash Update Method https://bugs.ruby-lang.org/issues/13179#change-79400 * Author: bettisworth (wurde _) * Status: Rejected * 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: