1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
module Dotenv
# This class inherits from Hash and represents the environment into which
# Dotenv will load key value pairs from a file.
class Environment < Hash
attr_reader :filename
def initialize(filename, is_load)
@filename = filename
load(is_load)
end
def load(is_load)
update Parser.call(read, is_load)
end
def read
File.open(@filename, "rb:bom|utf-8", &:read)
end
def apply
each { |k, v| ENV[k] ||= v }
end
def apply!
each { |k, v| ENV[k] = v }
end
end
end
|