summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosef Šimánek <josef.simanek@gmail.com>2023-02-28 05:38:47 +0100
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-03-07 16:52:28 +0900
commitdc33d32f12689dc5f29ba7bf7bb0c870647ca776 (patch)
treecd8ccd193a3cb4b4e994e23ca5cf2fe2ba28b673
parent93f0749a64ae4511bd38358dee238140489526b5 (diff)
Use proper memoized var name for Gem.state_home.
-rw-r--r--lib/rubygems/defaults.rb2
-rw-r--r--test/rubygems/test_gem.rb24
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
index 4806ea6469..b186375f69 100644
--- a/lib/rubygems/defaults.rb
+++ b/lib/rubygems/defaults.rb
@@ -158,7 +158,7 @@ module Gem
# The path to standard location of the user's state directory.
def self.state_home
- @data_home ||= (ENV["XDG_STATE_HOME"] || File.join(Gem.user_home, ".local", "state"))
+ @state_home ||= (ENV["XDG_STATE_HOME"] || File.join(Gem.user_home, ".local", "state"))
end
##
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index b572208e6b..99335ddb5b 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1654,6 +1654,30 @@ class TestGem < Gem::TestCase
ENV["SOURCE_DATE_EPOCH"] = old_epoch
end
+ def test_data_home_default
+ expected = File.join(@userhome, ".local", "share")
+ assert_equal expected, Gem.data_home
+ end
+
+ def test_data_home_from_env
+ ENV["XDG_DATA_HOME"] = expected = "/test/data/home"
+ assert_equal expected, Gem.data_home
+ end
+
+ def test_state_home_default
+ Gem.instance_variable_set :@state_home, nil
+ Gem.data_home # memoize @data_home, to demonstrate GH-6418
+ expected = File.join(@userhome, ".local", "state")
+ assert_equal expected, Gem.state_home
+ end
+
+ def test_state_home_from_env
+ Gem.instance_variable_set :@state_home, nil
+ Gem.data_home # memoize @data_home, to demonstrate GH-6418
+ ENV["XDG_STATE_HOME"] = expected = "/test/state/home"
+ assert_equal expected, Gem.state_home
+ end
+
private
def ruby_install_name(name)