Check if Bundler::EnvironmentPreserver is defined

Only `Bundler` might be defined.  `EnvironmentPreserver` and its
`BUNDLER_PREFIX` would be defined together in the same file.
This commit is contained in:
Nobuyoshi Nakada 2023-03-31 11:11:45 +09:00
parent 5116e8bdf8
commit bccdc04166
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6

View File

@ -233,9 +233,12 @@ class LeakChecker
old_env = @env_info
new_env = find_env
return false if old_env == new_env
if defined?(Bundler::EnvironmentPreserver)
bundler_prefix = Bundler::EnvironmentPreserver::BUNDLER_PREFIX
end
(old_env.keys | new_env.keys).sort.each {|k|
# Don't report changed environment variables caused by Bundler's backups
next if defined?(Bundler) and k.start_with?(Bundler::EnvironmentPreserver::BUNDLER_PREFIX)
next if bundler_prefix and k.start_with?(bundler_prefix)
if old_env.has_key?(k)
if new_env.has_key?(k)