Class: EnvControl::ValidateEnvVariables

Inherits:
Object
  • Object
show all
Defined in:
lib/env_control/validate_env_variables.rb

Instance Method Summary collapse

Instance Method Details

#call(contract:, env:, environment_name:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/env_control/validate_env_variables.rb', line 6

def call(contract:, env:, environment_name:)
  failures = {}
  contract.each do |env_var, var_contracts|
    if environment_specific?(var_contracts)
      var_contract = GetEnvironmentSpecificContract.new.call(env_var: env_var, contracts: var_contracts, environment_name: environment_name)
    else
      var_contract = as_array(var_contracts)
    end
    next unless var_contract # No environment-specific contract found
    var_value = env.fetch(env_var.to_s, nil)
    next if contract_honoured?(env_var, var_value, var_contract)

    failures[env_var] = var_contract
  end
  failures
end