diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-10-01 12:29:48 +0900 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2020-06-10 12:49:27 -0700 |
commit | 04fddf35734f04fd16824a847cad499465663a5f (patch) | |
tree | e8ab4ec2aa2181f98160eb587a3b1b35c1c51e8a /spec/ruby | |
parent | aab2a7cfcea8e21d3902c378e355f1a8ea97c6d5 (diff) | |
download | ruby-04fddf35734f04fd16824a847cad499465663a5f.tar.gz |
ENV.delete should return the result of block on non-existing key
Fixes [Bug #16173]
Co-Authored-By: Burdette Lamar <burdettelamar@yahoo.com>
Co-Authored-By: Jeremy Evans <code@jeremyevans.net>
Diffstat (limited to 'spec/ruby')
-rw-r--r-- | spec/ruby/core/env/delete_spec.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/spec/ruby/core/env/delete_spec.rb b/spec/ruby/core/env/delete_spec.rb index f11860b21d..36a1f2624b 100644 --- a/spec/ruby/core/env/delete_spec.rb +++ b/spec/ruby/core/env/delete_spec.rb @@ -30,6 +30,13 @@ describe "ENV.delete" do ScratchPad.recorded.should == "foo" end + ruby_version_is "2.8" do + it "returns the result of given block if the named environment variable does not exist" do + ENV.delete("foo") + ENV.delete("foo") { |name| "bar" }.should == "bar" + end + end + it "does not evaluate the block if the environment variable exists" do ENV["foo"] = "bar" ENV.delete("foo") { |name| fail "Should not happen" } |