module DotEnv::Parser

Constants

FALSEWORDS
TRUEWORDS

Public Class Methods

check_falsy(value) click to toggle source
# File lib/dot_env/parser.rb, line 28
def self.check_falsy(value)
  if FALSEWORDS.include? value.to_s.downcase
    return false
  else
    return value
  end
end
check_truthy(value) click to toggle source
# File lib/dot_env/parser.rb, line 20
def self.check_truthy(value)
  if TRUEWORDS.include? value.to_s.downcase
    return true
  else
    return value
  end
end
cleanup(value) click to toggle source
# File lib/dot_env/parser.rb, line 12
def self.cleanup(value)
  value.gsub(/["'\[\]]/, '').split(',').each(&:strip!)
end
expand(value) click to toggle source
# File lib/dot_env/parser.rb, line 16
def self.expand(value)
  value.gsub!(/\$\{?(\w+)\}?/) { ENV.fetch($1, nil) } || value
end
get_value_pair(line) click to toggle source
# File lib/dot_env/parser.rb, line 6
def self.get_value_pair(line)
  key, value = line.chomp.split('=').each {|v| v.gsub!(/['"]/, '') }.each(&:strip!)
  value = self.expand(value)
  [key, value]
end
parse(value) click to toggle source
# File lib/dot_env/parser.rb, line 36
def self.parse(value)
  parsed = []
  self.cleanup(value).each do |v|
    v = self.expand(v)
    v = self.check_truthy(v)
    v = self.check_falsy(v)
    parsed.push v
  end

  parsed.length > 1 ? parsed : parsed.first
end