Class: Dotenv::MissingVariableNotifier::Core

Inherits:
Object
  • Object
show all
Defined in:
lib/dotenv/missing_variable_notifier/core.rb

Class Method Summary collapse

Class Method Details

.check_for_missing_environment_variables!Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dotenv/missing_variable_notifier/core.rb', line 6

def self.check_for_missing_environment_variables!
  example_file = ['.env.template', '.env.example'].detect { |example_file| Rails.root.join(example_file).exist? }
  return unless example_file

  example_file_contents = File.open(Rails.root.join(example_file), 'rb:bom|utf-8', &:read)
  example_file_variables = Dotenv::Parser.call(example_file_contents, false) # Thank you dotenv <3
  missing_variables = example_file_variables.keys.reject { |variable| ENV.has_key?(variable) }
  if missing_variables.any?
    raise MissingEnvironmentVariableError, "There are environment variables in your dotenv template file that are not set in your development environment: #{missing_variables.join(', ')}"
  end
end