From: eregontp@... Date: 2019-11-30T17:18:15+00:00 Subject: [ruby-core:96038] [Ruby master Bug#16192] ENV.update hash values ignored when block given Issue #16192 has been updated by Eregon (Benoit Daloze). Backport set to 2.5: UNKNOWN, 2.6: UNKNOWN Tracker changed from Misc to Bug This is a clear bug, I'll merge @nobu's patch. There are already specs for this from https://github.com/ruby/spec/pull/714, which I'll synchronize to MRI soon. ---------------------------------------- Bug #16192: ENV.update hash values ignored when block given https://bugs.ruby-lang.org/issues/16192#change-82887 * Author: burdettelamar@yahoo.com (Burdette Lamar) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- Doc: ``` update(hash) ��� Hash update(hash) { |name, old_value, new_value| block } ��� Hash ``` Adds the contents of hash to the environment variables. If no block is specified entries with duplicate keys are overwritten, otherwise the value of each duplicate name is determined by calling the block with the key, its value from the environment and its value from the hash. But: The attached code shows that the block is called and its returned value assigned even if the name is not a duplicate. So basically this means that when a block is given, the hash values are ignored for all keys. I had expected that for a non-duplicate name, the block would be ignored, and the hash value assigned. I'm calling this a Misc, and not a Bug, just in case I'm missing something. ---Files-------------------------------- t.rb (179 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: