From: eregontp@... Date: 2015-12-02T09:47:21+00:00 Subject: [ruby-core:71801] [Ruby trunk - Feature #11761] `Hash#default_set` and `Hash#default_proc_set` Issue #11761 has been updated by Benoit Daloze. Resetting the default value/proc for a Hash multiple times seems a rather special case, could you illustrate why you want to do this? Hash#merge is not affected by the default values, isn't it? If it's more like Python setdefault, then I guess (h[k] ||= v).do_sth can work without changing globally the Hash default. ---------------------------------------- Feature #11761: `Hash#default_set` and `Hash#default_proc_set` https://bugs.ruby-lang.org/issues/11761#change-55207 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: ---------------------------------------- I often want to assign a default value or proc to an existing hash `h` and chain method after it. The way I do it is: Hash.new(default_value).merge(h)... Hash.new{default_proc_value}.merge(h)... It would be convenient if I can assign them to a hash directly, and `Hash#default=` and `Hash#default_proc=` are close to doing that, but they are actually not useful because the return value is not the receiver hash: h.default = default_value; h... h.default_proc = proc {default_proc_value}; h... I wish there were methods `Hash#default_set` and `Hash#default_proc_set` that return the receiver hash: h.default_set(default_value)... h.default_proc_set{default_proc_value}... -- https://bugs.ruby-lang.org/