class EnvVarsValidator
Public Class Methods
last_error()
click to toggle source
# File lib/env_vars_validator.rb, line 4 def self.last_error @@last_error end
source_from_ruby_files(starting_dir)
click to toggle source
# File lib/env_vars_validator.rb, line 8 def self.source_from_ruby_files(starting_dir) Dir.glob(File.join(starting_dir, '**', '*.rb')). reject { |file_path| file_path.include?('vendor') }. map { |file_path| File.read(file_path) }. join("\n") end
used_env_vars(starting_dir)
click to toggle source
# File lib/env_vars_validator.rb, line 15 def self.used_env_vars(starting_dir) source_from_ruby_files(starting_dir). scan(/ENV\[(?:'|")([^\]]+)(?:'|")\]/). flatten. uniq. sort end
validate(starting_dir)
click to toggle source
# File lib/env_vars_validator.rb, line 23 def self.validate(starting_dir) declared_env_vars = ENV.keys missing_env_vars = used_env_vars(starting_dir) - declared_env_vars unless missing_env_vars.empty? @@last_error = "The following env vars are required and have not been defined:\n #{missing_env_vars.sort.join("\n ")}" return false end true end