Actions
Feature #584
closedENV#[]= and nil
Status:
Closed
Assignee:
-
Target version:
-
Description
=begin
遠藤です。
1.8 では ENV["FOO"] = nil は環境変数を消しますが、1.9 ではエラーになり、
不便です。子プロセスを作るときなどで、一時的に環境変数を変えるために
env_foo = ENV["FOO"]
ENV["FOO"] = "something"
system(...)
ENV["FOO"] = env_foo
で済んでいたところが
env_foo = ENV["FOO"]
ENV["FOO"] = "something"
system(...)
if env_foo
ENV["FOO"] = env_foo
else
ENV.delete("FOO")
end
ととても冗長になります。いろんなソースでこのコードを書く必要があります。
「nil の特別扱いをなくす」という一貫性のために、利便性が犠牲になりすぎ
だと思います。
なので、
- 1.8 の挙動に戻す (ENV だけ nil を特別扱いする)
- 1.8 の ENV#[]= と同じ挙動をするメソッドを提供する (ENV#assign とか)
のどっちかをするのはどうでしょうか。
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Actions
Like0
Like0Like0