class EnvLint::DotEnvFile
Attributes
name[R]
variables[R]
Public Class Methods
from_file(file_name)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 30 def self.from_file(file_name) new(file_name, DotEnvParser.new.parse(File.read(file_name))) end
new(name, variables)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 5 def initialize(name, variables) @name = name @variables = variables @variables_by_name = variables.each_with_object({}) do |variable, hash| hash[variable.name] = variable end end
Public Instance Methods
find_variable(name)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 14 def find_variable(name) @variables_by_name[name] end
verify_no_missing(variable_names)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 18 def verify_no_missing(variable_names) find_missing(variable_names).tap do |missing_variables| raise(MissingVariables.new(self, missing_variables)) if missing_variables.any? end end
verify_no_unknown(variable_names)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 24 def verify_no_unknown(variable_names) find_unknown(variable_names).tap do |unknown_names| raise(UnknownVariables.new(self, unknown_names)) if unknown_names.any? end end
Private Instance Methods
find_missing(variable_names)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 36 def find_missing(variable_names) @variables.find_all do |variable| !variable.optional? && !variable_names.include?(variable.name) end end
find_unknown(variable_names)
click to toggle source
# File lib/env_lint/dot_env_file.rb, line 42 def find_unknown(variable_names) variable_names.find_all do |name| !@variables_by_name.key?(name) end end