class DotEnvConfiguration

Ruby on Rails edge

Since edge

Provide an interface for accessing configuration options stored in a .env file. Keys are accepted as symbols and turned into upcased strings. Nesting is provided by double underscores.

This interface mirrors what is used for ActiveSupport::EnvConfiguration and ActiveSupport::EncryptedConfiguration and thus allows all three to serve as interchangeable backends for Rails.app.creds.

The .env file format supports:

  • Lines with KEY=value pairs

  • Comments starting with #

  • Empty lines (ignored)

  • Quoted values (single or double quotes)

  • Variable interpolation with ${VAR} syntax

  • Command execution with $(command) syntax

The command execution allows for easy integration with third-party credential providers, like 1password:

DB_HOST=$(op read op://Vault/item/value --account=MyAccount)

When used inside Rails, the default path for the .env file will be Rails.root.join(".env"). Otherwise it must be passed in as path.

Examples:

require(:db_host)                                   # => value of DB_HOST from .env
require(:database, :host)                           # => value of DATABASE__HOST from .env
option(:debug)                                      # => value of DEBUG from .env or nil if missing
option(:debug, default: "true")                     # => value of DEBUG from .env or "true" if not found
option(:database, :host, default: -> { "missing" }) # => value of DATABASE__HOST from .env or "missing" if not found

Inherits from

EnvConfiguration

Methods (defined here)

Private methods (5)

Show private methods Implementation detail — not part of the public API.

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close