module EacRubyUtils::Ruby

Public Class Methods

on_clean_environment() { || ... } click to toggle source

Executes a block in an environment when the variables BUNDLE* and RUBY* are removed.

# File lib/eac_ruby_utils/ruby/on_clean_environment.rb, line 7
def on_clean_environment
  on_clean_envvars('BUNDLE', 'RUBY') { yield }
end

Private Class Methods

envvars_starting_with(start_with_vars) click to toggle source
# File lib/eac_ruby_utils/ruby/on_clean_environment.rb, line 21
def envvars_starting_with(start_with_vars)
  ENV.select { |k, _v| start_with_vars.any? { |var| k.start_with?(var) } }
end
on_clean_envvars(*start_with_vars) { || ... } click to toggle source
# File lib/eac_ruby_utils/ruby/on_clean_environment.rb, line 13
def on_clean_envvars(*start_with_vars)
  old_values = envvars_starting_with(start_with_vars)
  old_values.keys.each { |k| ENV.delete(k) }
  yield
ensure
  old_values&.each { |k, v| ENV[k] = v }
end