aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-10-01 12:29:48 +0900
committerJeremy Evans <code@jeremyevans.net>2020-06-10 12:49:27 -0700
commit04fddf35734f04fd16824a847cad499465663a5f (patch)
treee8ab4ec2aa2181f98160eb587a3b1b35c1c51e8a /spec
parentaab2a7cfcea8e21d3902c378e355f1a8ea97c6d5 (diff)
downloadruby-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')
-rw-r--r--spec/ruby/core/env/delete_spec.rb7
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" }