class Envlogic::Env

Env module to get and set environment

def app_dir_name

Other tags:
    Note: - Will return only the last part, so if the dir is /home/apps/my_app it will

Returns:
  • (String) - name of the directory in which this application is
def app_dir_name
  Pathname
    .new(ENV['BUNDLE_GEMFILE'])
    .dirname
    .basename
    .to_s
end

def initialize(klass)

Other tags:
    Note: - Will load appropriate environment automatically

Returns:
  • (Envlogic::Env) - envlogic env object]

Parameters:
  • klass (Class, Module) -- class/module for which we want to build a Envlogic::Env object
def initialize(klass)
  env = ENV[to_env_key(app_dir_name)]
  env ||= ENV[to_env_key(klass.to_s)]
  env ||= ENV[FALLBACK_ENV_KEY]
  update(env || FALLBACK_ENV)
end

def method_missing(method_name, *arguments)

Parameters:
  • arguments (Array) -- any arguments that we pass to the method
  • method_name (String) -- method name for missing or env name with question mark
def method_missing(method_name, *arguments)
  method_name[-1] == '?' ? self == method_name[0..-2] : super
end

def respond_to_missing?(method_name, include_private = false)

Returns:
  • (Boolean) - true if we respond to a given missing method, otherwise false

Parameters:
  • include_private (Boolean) -- should we include private methods as well
  • method_name (String) -- method name
def respond_to_missing?(method_name, include_private = false)
  (method_name[-1] == '?') || super
end

def to_env_key(string)

Converts any string into a bash ENV key
def to_env_key(string)
  INFLECTOR
    .underscore(string)
    .tr('/', '_')
    .upcase + ENV_KEY_POSTFIX
end