# File lib/dotenv/environment.rb, line 21 def initialize(filename) @filename = filename load end
# File lib/dotenv/environment.rb, line 43 def apply each { |k,v| ENV[k] ||= v } end
# File lib/dotenv/environment.rb, line 26 def load read.each do |line| if match = line.match(LINE) key, value = match.captures value = value.strip.sub(/\A(['"])(.*)\1\z/, '\2') value = value.gsub('\n', "\n").gsub(/\(.)/, '\1') if $1 == '"' self[key] = value elsif line !~ /\A\s*(?:#.*)?\z/ # not comment or blank line raise FormatError, "Line #{line.inspect} doesn't match format" end end end
# File lib/dotenv/environment.rb, line 39 def read File.read(@filename).split("\n") end