class Envm::EnvVar

Attributes

default_value[RW]
description[RW]
env[RW]
name[RW]
required_environments[RW]

Public Class Methods

new(name:, description: nil, default_value: nil, required: [], env: ENV) click to toggle source
# File lib/envm/env_var.rb, line 7
def initialize(name:, description: nil, default_value: nil, required: [], env: ENV)
  self.name = name
  self.description = description
  self.default_value = default_value
  self.env = env

  if required.respond_to?(:include?)
    self.required_environments = required
  else
    self.required_environments = []
    self.required_environments << DEFAULT_ENV if required
  end
end

Public Instance Methods

required_and_missing?() click to toggle source
# File lib/envm/env_var.rb, line 21
def required_and_missing?
  required_environments.include?(Config.environment) && !system_value
end
system_value() click to toggle source
# File lib/envm/env_var.rb, line 33
def system_value
  env[name]
end
value() click to toggle source
# File lib/envm/env_var.rb, line 25
def value
  if required_and_missing?
    fail(NotSetError, "'#{name}' environment variable was required but not set on system.")
  end

  system_value || default_value
end