module EnvChecker
Constants
- VERSION
Attributes
configurations[RW]
Public Class Methods
cli_configure_and_check(options)
click to toggle source
# File lib/env_checker.rb, line 21 def cli_configure_and_check(options) run_configure_and_check(options) && options[:run] && exit(system(options[:run])) exit(true) end
configure() { |configurations| ... }
click to toggle source
# File lib/env_checker.rb, line 14 def configure self.configurations ||= {} configurations['global'] = Configuration.new yield(configurations['global']) after_configure_and_check(configurations) end
Private Class Methods
after_configure_and_check(configurations)
click to toggle source
# File lib/env_checker.rb, line 50 def after_configure_and_check(configurations) environments_to_check = %w(global) current_env = configurations['global'].environment if current_env && configurations.key?(current_env) environments_to_check << current_env end environments_to_check.map do |env| configurations[env].after_initialize check_optional_variables(env, configurations) & check_required_variables(env, configurations) end.reduce(:&) end
check_optional_variables(env, configurations)
click to toggle source
# File lib/env_checker.rb, line 105 def check_optional_variables(env, configurations) return true if !configurations[env].optional_variables || configurations[env].optional_variables.empty? missing_keys = missing_keys_env(configurations[env].optional_variables) return true if missing_keys.empty? Notifier.log_message( configurations[env], :warning, env, "Warning! Missing optional variables: #{missing_keys}" ) false end
check_required_variables(env, configurations)
click to toggle source
# File lib/env_checker.rb, line 123 def check_required_variables(env, configurations) return true if !configurations[env].required_variables || configurations[env].required_variables.empty? missing_keys = missing_keys_env(configurations[env].required_variables) if missing_keys.any? Notifier.log_message( configurations[env], :error, env, "Error! Missing required variables: #{missing_keys}" ) raise MissingKeysError.new(missing_keys) end true end
config_from_file(name, attributes, from_file)
click to toggle source
# File lib/env_checker.rb, line 94 def config_from_file(name, attributes, from_file) return { name => Configuration.new } unless from_file config = Configuration.new attributes.each do |a| config.public_send("#{a}=", from_file[a]) if from_file[a] end { name => config } end
create_config_from_parameters(options)
click to toggle source
# File lib/env_checker.rb, line 66 def create_config_from_parameters(options) configurations = { 'global' => Configuration.new } attributes = %w(environments environment optional_variables required_variables slack_webhook_url) if options[:config_file] from_file = YAML.load_file(options[:config_file]) configurations = config_from_file('global', attributes, from_file) if configurations['global'].environments.any? configurations['global'].environments.each do |env| configurations .merge!(config_from_file(env, attributes, from_file[env])) end end end attributes.each do |a| options[a.to_sym] && configurations['global'].public_send("#{a}=", options[a.to_sym]) end configurations end
missing_keys_env(keys)
click to toggle source
# File lib/env_checker.rb, line 144 def missing_keys_env(keys) keys.flatten - ::ENV.keys end
run_configure_and_check(options)
click to toggle source
# File lib/env_checker.rb, line 30 def run_configure_and_check(options) return true if !options[:optional_variables] && !options[:required_variables] && !options[:config_file] self.configurations = create_config_from_parameters(options) begin unless after_configure_and_check(configurations) exit(options[:run] ? system(options[:run]) : 1) end rescue EnvChecker::MissingKeysError exit 2 rescue EnvChecker::ConfigurationError exit 3 end true end