class KuberKit::EnvFileReader::EnvFileParser
Constants
- LINE
Parser is based on: github.com/bkeepers/dotenv/blob/master/lib/dotenv/parser.rb
Public Instance Methods
call(string)
click to toggle source
# File lib/kuber_kit/env_file_reader/env_file_parser.rb, line 23 def call(string) hash = {} string.gsub(/\r\n?/, "\n").scan(LINE).each do |key, value| hash[key] = parse_value(value || "") end hash end
Private Instance Methods
expand_newlines(value)
click to toggle source
# File lib/kuber_kit/env_file_reader/env_file_parser.rb, line 48 def expand_newlines(value) value.gsub('\n', "\n").gsub('\r', "\r") end
parse_value(value)
click to toggle source
# File lib/kuber_kit/env_file_reader/env_file_parser.rb, line 33 def parse_value(value) # Remove surrounding quotes value = value.strip.sub(/\A(['"])(.*)\1\z/m, '\2') if Regexp.last_match(1) == '"' value = unescape_characters(expand_newlines(value)) end value end
unescape_characters(value)
click to toggle source
# File lib/kuber_kit/env_file_reader/env_file_parser.rb, line 44 def unescape_characters(value) value.gsub(/\\([^$])/, '\1') end