Issue #13314 has been reported by sawa (Tsuyoshi Sawada).

----------------------------------------
Feature #13314: dig=
https://bugs.ruby-lang.org/issues/13314

* Author: sawa (Tsuyoshi Sawada)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
We have `Hash#dig`, and when we want to assign a key-value at a deep level, it is tempting to do:

```ruby
hash.dig(:key1, :key2, :key3, :key4) = "value
```

when we actually needed to do:

```ruby
hash.dig(:key1, :key2, :key3)&.[]=(:key4, "value")
```

I propose a method `Hash#dig=`, which should be equivalent to the following:

```
class Hash
  def dig=(*keys, final_key, value)
    dig(*keys)&.[](final_key, value)
  end
end
```




-- 
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>