Module: Dotenv
- Defined in:
- lib/dotenv.rb,
lib/dotenv/cli.rb,
lib/dotenv/parser.rb,
lib/dotenv/version.rb,
lib/dotenv/template.rb,
lib/dotenv/environment.rb,
lib/dotenv/missing_keys.rb,
lib/dotenv/substitutions/command.rb,
lib/dotenv/substitutions/variable.rb
Overview
The top level Dotenv module. The entrypoint for the application logic.
Defined Under Namespace
Modules: Substitutions Classes: CLI, EnvTemplate, Environment, Error, FormatError, MissingKeys, Parser
Constant Summary collapse
- VERSION =
"2.8.1".freeze
- EXPORT_COMMAND =
"export ".freeze
Class Attribute Summary collapse
-
.instrumenter ⇒ Object
Returns the value of attribute instrumenter.
Class Method Summary collapse
- .ignoring_nonexistent_files ⇒ Object
- .instrument(name, payload = {}, &block) ⇒ Object
- .load(*filenames) ⇒ Object
-
.load!(*filenames) ⇒ Object
same as ‘load`, but raises Errno::ENOENT if any files don’t exist.
-
.overload(*filenames) ⇒ Object
same as ‘load`, but will override existing values in `ENV`.
-
.overload!(*filenames) ⇒ Object
same as ‘overload`, but raises Errno::ENOENT if any files don’t exist.
-
.parse(*filenames) ⇒ Object
returns a hash of parsed key/value pairs but does not modify ENV.
- .require_keys(*keys) ⇒ Object
-
.with(*filenames) ⇒ Object
Internal: Helper to expand list of filenames.
Class Attribute Details
.instrumenter ⇒ Object
Returns the value of attribute instrumenter.
8 9 10 |
# File 'lib/dotenv.rb', line 8 def instrumenter @instrumenter end |
Class Method Details
.ignoring_nonexistent_files ⇒ Object
82 83 84 85 |
# File 'lib/dotenv.rb', line 82 def ignoring_nonexistent_files yield rescue Errno::ENOENT end |
.instrument(name, payload = {}, &block) ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/dotenv.rb', line 68 def instrument(name, payload = {}, &block) if instrumenter instrumenter.instrument(name, payload, &block) else yield end end |
.load(*filenames) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/dotenv.rb', line 13 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 |
.load!(*filenames) ⇒ Object
same as ‘load`, but raises Errno::ENOENT if any files don’t exist
23 24 25 26 27 28 |
# File 'lib/dotenv.rb', line 23 def load!(*filenames) with(*filenames) do |f| env = Environment.new(f, true) instrument("dotenv.load", env: env) { env.apply } end end |
.overload(*filenames) ⇒ Object
same as ‘load`, but will override existing values in `ENV`
31 32 33 34 35 36 37 38 |
# File 'lib/dotenv.rb', line 31 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 |
.overload!(*filenames) ⇒ Object
same as ‘overload`, but raises Errno::ENOENT if any files don’t exist
41 42 43 44 45 46 |
# File 'lib/dotenv.rb', line 41 def overload!(*filenames) with(*filenames) do |f| env = Environment.new(f, false) instrument("dotenv.overload", env: env) { env.apply! } end end |
.parse(*filenames) ⇒ Object
returns a hash of parsed key/value pairs but does not modify ENV
49 50 51 52 53 54 55 |
# File 'lib/dotenv.rb', line 49 def parse(*filenames) with(*filenames) do |f| ignoring_nonexistent_files do Environment.new(f, false) end end end |
.require_keys(*keys) ⇒ Object
76 77 78 79 80 |
# File 'lib/dotenv.rb', line 76 def require_keys(*keys) missing_keys = keys.flatten - ::ENV.keys return if missing_keys.empty? raise MissingKeys, missing_keys end |
.with(*filenames) ⇒ Object
Internal: Helper to expand list of filenames.
Returns a hash of all the loaded environment variables.
60 61 62 63 64 65 66 |
# File 'lib/dotenv.rb', line 60 def with(*filenames) filenames << ".env" if filenames.empty? filenames.reduce({}) do |hash, filename| hash.merge!(yield(File.(filename)) || {}) end end |