Module: Hanami::Env

Defined in:
lib/hanami/env.rb

Overview

Since:

  • 0.1.0

Class Method Summary collapse

Class Method Details

.load(env = Hanami.env) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Uses dotenv (if available) to populate ENV from various .env files.

For a given HANAMI_ENV environment, the .env files are looked up in the following order:

  • .env.environment.local
  • .env.local (unless the environment is test)
  • .env.environment
  • .env

If dotenv is unavailable, the method exits and does nothing.

Since:

  • 2.0.1

API:

  • private



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/hanami/env.rb', line 23

def self.load(env = Hanami.env)
  return unless Hanami.bundled?("dotenv")
  return if loaded?

  dotenv_files = [
    ".env.#{env}.local",
    (".env.local" unless env == :test),
    ".env.#{env}",
    ".env"
  ].compact

  require "dotenv"
  Dotenv.load(*dotenv_files)

  loaded!
end

.loaded!Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.0.1

API:

  • private



48
49
50
# File 'lib/hanami/env.rb', line 48

def self.loaded!
  @_loaded = true
end

.loaded?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

Since:

  • 2.0.1

API:

  • private



42
43
44
# File 'lib/hanami/env.rb', line 42

def self.loaded?
  @_loaded
end