Class: Savvy::EnvironmentReader
- Inherits:
-
Object
- Object
- Savvy::EnvironmentReader
- Defined in:
- lib/savvy/environment_reader.rb
Instance Method Summary collapse
-
#[](*names, presence: true, raise_error: false, **options) ⇒ Object
Like #fetch, but with ‘raise_error` set to false and `presence` set to true.
- #fetch(*names, fallback: NONE, raise_error: true, presence: false) ⇒ Object
-
#has_value?(var) ⇒ Boolean
Check if the environment has a present value set.
-
#initialize(env = ENV) ⇒ EnvironmentReader
constructor
A new instance of EnvironmentReader.
-
#set?(var) ⇒ Boolean
Checks only if the variable is set, not necessarily that it is non-empty.
Constructor Details
#initialize(env = ENV) ⇒ EnvironmentReader
Returns a new instance of EnvironmentReader.
8 9 10 |
# File 'lib/savvy/environment_reader.rb', line 8 def initialize(env = ENV) @env = env end |
Instance Method Details
#[](*names, presence: true, raise_error: false, **options) ⇒ Object
Like #fetch, but with ‘raise_error` set to false and `presence` set to true.
16 17 18 19 20 21 |
# File 'lib/savvy/environment_reader.rb', line 16 def [](*names, presence: true, raise_error: false, **) [:raise_error] = raise_error [:presence] = presence fetch(*names, **) end |
#fetch(*names, fallback: NONE, raise_error: true, presence: false) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/savvy/environment_reader.rb', line 26 def fetch(*names, fallback: NONE, raise_error: true, presence: false) names.flatten! names.each do |name| if ( presence && has_value?(name) ) || set?(name) return @env[name] end end if fallback != NONE return fallback elsif raise_error raise ArgumentError, "No #{'present ' if presence}env value found for #{names.join(', ')}" end end |
#has_value?(var) ⇒ Boolean
Check if the environment has a present value set.
46 47 48 |
# File 'lib/savvy/environment_reader.rb', line 46 def has_value?(var) set?(var) && Dux.presentish?(@env[var]) end |
#set?(var) ⇒ Boolean
Checks only if the variable is set, not necessarily that it is non-empty.
54 55 56 |
# File 'lib/savvy/environment_reader.rb', line 54 def set?(var) @env.key?(var) end |