module Dotenv

def parse(*filenames, overwrite: false, ignore: true, &block)

Returns:
  • (Hash) - parsed key/value pairs

Parameters:
  • block (Proc) -- Block to yield for each parsed `Dotenv::Environment`
  • ignore (Boolean) -- Ignore non-existent files
  • overwrite (Boolean) -- Overwrite existing `ENV` values
  • filenames (String, Array) -- Files to parse
def parse(*filenames, overwrite: false, ignore: true, &block)
  filenames << ".env" if filenames.empty?
  filenames = filenames.reverse if overwrite
  filenames.reduce({}) do |hash, filename|
    begin
      env = Environment.new(File.expand_path(filename), overwrite: overwrite)
      env = block.call(env) if block
    rescue Errno::ENOENT, Errno::EISDIR
      raise unless ignore
    end
    hash.merge! env || {}
  end
end