Dotenv.require_keys only checks key presence, so FOO= or FOO=" " pass, which can mask misconfiguration.
Old
def require_keys(*keys)
missing_keys = keys.flatten - ::ENV.keys
return if missing_keys.empty?
raise MissingKeys, missing_keys
end
New:
def require_keys(*keys)
missing_keys = keys.flatten.select { |k| ENV[k].to_s.strip.empty? }
raise MissingKeys, missing_keys unless missing_keys.empty?
end