module Pult::Executor::Enver

Constants

CURRENT
DEFAULT
DEFAULT_VARS
ENVS
ENV_BASE
RESOLVER

Public Instance Methods

with_env(resolver_or_env) { || ... } click to toggle source
# File lib/pult/executor/enver.rb, line 19
def with_env resolver_or_env
  env = RESOLVER[resolver_or_env] || resolver_or_env
  
  if env.is_a?(Hash)
    ENV_BASE ? env_set!(env) : env_set(env)
    
    yield
    
    env_set!(CURRENT)
  else
    raise ArgumentError, 'Env not resolved'
  end
end

Private Instance Methods

diff(env1, env2) click to toggle source
# File lib/pult/executor/enver.rb, line 59
def diff env1, env2
  env2.keys - env1.keys
end
env_delete_diff!(env1, env2) click to toggle source
# File lib/pult/executor/enver.rb, line 47
def env_delete_diff! env1, env2
  diff(env1, env2).each do |var|
    ENV.delete(var)
  end
end
env_set(env) click to toggle source
# File lib/pult/executor/enver.rb, line 35
def env_set env
  ENV.keys.each do |var|
    ENV[var] = env[var] if env[var]
  end
end
env_set!(env) click to toggle source
# File lib/pult/executor/enver.rb, line 41
def env_set! env
  ENV.keys.each do |var|
    env[var] ? ENV[var] = env[var] : ENV.delete(var)
  end
end
env_set_diff!(env1, env2) click to toggle source
# File lib/pult/executor/enver.rb, line 53
def env_set_diff! env1, env2
  diff(env1, env2).each do |var|
    ENV[var] = env[var]
  end
end