From: hanmac@... Date: 2017-08-10T14:42:21+00:00 Subject: [ruby-core:82330] [Ruby trunk Bug#13799] ENV.dup returns a plain Object Issue #13799 has been updated by Hanmac (Hans Mackowiak). the Problem: ENV is an Hash-like Object with having singleton methods to look like an Hash, but isn't one dup does make a copy of an object of the same class, in that case useless because you don't want an Object and the singleton methods are not copied what you can do is using ENV.to_h which does return an Hash as you want ---------------------------------------- Bug #13799: ENV.dup returns a plain Object https://bugs.ruby-lang.org/issues/13799#change-66128 * Author: sylvain.joyeux (Sylvain Joyeux) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.1.9, 2.2.5, 2.3.3, 2.4.1 * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- I was doing ENV.dup to get a copy of the environment that can be modified without affecting ENV. However, ENV.dup returns a plain Object ~~~ irb(main):005:0> ENV.dup => # irb(main):006:0> ENV.dup['PATH'] NoMethodError: undefined method `[]' for # from (irb):6 from /home/doudou/.rbenv/versions/2.4.1/bin/irb:11:in `
' irb(main):007:0> ~~~ The only way I found to get a copy is Hash[ENV] -- https://bugs.ruby-lang.org/ Unsubscribe: