Sha256: 95b759927931698cb1b9baaf4ea22bd546bb192da498b295885cd038dae5cc35
Contents?: true
Size: 1.43 KB
Versions: 3
Compression:
Stored size: 1.43 KB
Contents
require "dotenv/parser" require "dotenv/environment" # The top level Dotenv module. The entrypoint for the application logic. module Dotenv class << self attr_accessor :instrumenter end module_function def load(*filenames) with(*filenames) do |f| ignoring_nonexistent_files do env = Environment.new(f, true) instrument("dotenv.load", env: env) { env.apply } end end end # same as `load`, but raises Errno::ENOENT if any files don't exist def load!(*filenames) with(*filenames) do |f| env = Environment.new(f, true) instrument("dotenv.load", env: env) { env.apply } end end # same as `load`, but will override existing values in `ENV` def overload(*filenames) with(*filenames) do |f| ignoring_nonexistent_files do env = Environment.new(f, false) instrument("dotenv.overload", env: env) { env.apply! } end end end # Internal: Helper to expand list of filenames. # # Returns a hash of all the loaded environment variables. def with(*filenames) filenames << ".env" if filenames.empty? filenames.reduce({}) do |hash, filename| hash.merge!(yield(File.expand_path(filename)) || {}) end end def instrument(name, payload = {}, &block) if instrumenter instrumenter.instrument(name, payload, &block) else yield end end def ignoring_nonexistent_files yield rescue Errno::ENOENT end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dotenv-2.5.0 | lib/dotenv.rb |
dotenv-2.4.0 | lib/dotenv.rb |
dotenv-2.3.0 | lib/dotenv.rb |