Class: Envm::EnvVar

Inherits:
Object
  • Object
show all
Defined in:
lib/envm/env_var.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, description: nil, default_value: nil, required: [], env: ENV) ⇒ EnvVar

Returns a new instance of EnvVar.



7
8
9
10
11
12
13
14
15
16
17
18
19
# 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

Instance Attribute Details

#default_valueObject

Returns the value of attribute default_value.



5
6
7
# File 'lib/envm/env_var.rb', line 5

def default_value
  @default_value
end

#descriptionObject

Returns the value of attribute description.



5
6
7
# File 'lib/envm/env_var.rb', line 5

def description
  @description
end

#envObject

Returns the value of attribute env.



5
6
7
# File 'lib/envm/env_var.rb', line 5

def env
  @env
end

#nameObject

Returns the value of attribute name.



5
6
7
# File 'lib/envm/env_var.rb', line 5

def name
  @name
end

#required_environmentsObject

Returns the value of attribute required_environments.



5
6
7
# File 'lib/envm/env_var.rb', line 5

def required_environments
  @required_environments
end

Instance Method Details

#required_and_missing?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/envm/env_var.rb', line 21

def required_and_missing?
  required_environments.include?(Config.environment) && !system_value
end

#system_valueObject



33
34
35
# File 'lib/envm/env_var.rb', line 33

def system_value
  env[name]
end

#valueObject



25
26
27
28
29
30
31
# 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