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