module Dotenv

The top level Dotenv module. The entrypoint for the application logic.

Constants

VERSION

Attributes

instrumenter[RW]

Public Instance Methods

ignoring_nonexistent_files() { || ... } click to toggle source
# File lib/dotenv.rb, line 58
def ignoring_nonexistent_files
  yield
rescue Errno::ENOENT
end
instrument(name, payload = {}) { || ... } click to toggle source
# File lib/dotenv.rb, line 50
def instrument(name, payload = {}, &block)
  if instrumenter
    instrumenter.instrument(name, payload, &block)
  else
    yield
  end
end
load(*filenames) click to toggle source
# File lib/dotenv.rb, line 12
def load(*filenames)
  with(*filenames) do |f|
    ignoring_nonexistent_files do
      env = Environment.new(f)
      instrument("dotenv.load", :env => env) { env.apply }
    end
  end
end
load!(*filenames) click to toggle source

same as `load`, but raises Errno::ENOENT if any files don't exist

# File lib/dotenv.rb, line 22
def load!(*filenames)
  with(*filenames) do |f|
    env = Environment.new(f)
    instrument("dotenv.load", :env => env) { env.apply }
  end
end
overload(*filenames) click to toggle source

same as `load`, but will override existing values in `ENV`

# File lib/dotenv.rb, line 30
def overload(*filenames)
  with(*filenames) do |f|
    ignoring_nonexistent_files do
      env = Environment.new(f)
      instrument("dotenv.overload", :env => env) { env.apply! }
    end
  end
end
with(*filenames) { |expand_path| ... } click to toggle source

Internal: Helper to expand list of filenames.

Returns a hash of all the loaded environment variables.

# File lib/dotenv.rb, line 42
def with(*filenames)
  filenames << ".env" if filenames.empty?

  filenames.reduce({}) do |hash, filename|
    hash.merge!(yield(File.expand_path(filename)) || {})
  end
end