module Hanami::Env

Public Class Methods

load(env = Hanami.env) click to toggle source

Uses [dotenv](github.com/bkeepers/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

# 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!() click to toggle source

@since 2.0.1 @api private

# File lib/hanami/env.rb, line 48
def self.loaded!
  @_loaded = true
end
loaded?() click to toggle source

@since 2.0.1 @api private

# File lib/hanami/env.rb, line 42
def self.loaded?
  @_loaded
end