Use proper memoized var name for Gem.state_home.

This commit is contained in:
Josef Šimánek 2023-02-28 05:38:47 +01:00 committed by Hiroshi SHIBATA
parent 93f0749a64
commit dc33d32f12
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2
2 changed files with 25 additions and 1 deletions

View File

@ -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
##

View File

@ -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)