Class: Aruba::Platforms::UnixEnvironmentVariables
- Inherits:
-
Object
- Object
- Aruba::Platforms::UnixEnvironmentVariables
- Defined in:
- lib/aruba/platforms/unix_environment_variables.rb
Overview
Abstract environment variables
Direct Known Subclasses
Defined Under Namespace
Classes: RemoveAction, UpdateAction
Constant Summary collapse
- UNDEFINED =
We need to use this, because ‘nil` is a valid value as default
Object.new.freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#[](name) ⇒ Object
Get value of variable.
-
#[]=(name, value) ⇒ Object
Set value of variable.
-
#append(name, value) ⇒ Object
Append value to variable.
-
#clear ⇒ Object
Reset environment.
-
#delete(name) ⇒ Object
Delete variable.
-
#fetch(name, default = UNDEFINED) ⇒ Object
Fetch variable from environment.
-
#initialize(env = ENV) ⇒ UnixEnvironmentVariables
constructor
A new instance of UnixEnvironmentVariables.
-
#key?(name) ⇒ Boolean
Check if variable exist.
-
#method_missing(name) ⇒ Object
Pass on checks.
- #nest ⇒ Object
-
#prepend(name, value) ⇒ Object
Prepend value to variable.
-
#respond_to_missing?(name, _private) ⇒ Boolean
Check for respond_to.
-
#to_h ⇒ Hash
Convert to hash.
-
#update(other_env) { ... } ⇒ Object
Update environment with other en.
Constructor Details
#initialize(env = ENV) ⇒ UnixEnvironmentVariables
Returns a new instance of UnixEnvironmentVariables.
52 53 54 55 56 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 52 def initialize(env = ENV) @actions = [] @env = env.to_h end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) ⇒ Object
Pass on checks
161 162 163 164 165 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 161 def method_missing(name, ...) super unless to_h.respond_to? name to_h.send(name, ...) end |
Class Method Details
.hash_from_env ⇒ Object
196 197 198 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 196 def self.hash_from_env ENV.to_hash end |
Instance Method Details
#[](name) ⇒ Object
Get value of variable
98 99 100 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 98 def [](name) to_h[name.to_s] end |
#[]=(name, value) ⇒ Object
Set value of variable
109 110 111 112 113 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 109 def []=(name, value) value = value.to_s actions << UpdateAction.new(name.to_s => value) end |
#append(name, value) ⇒ Object
Append value to variable
122 123 124 125 126 127 128 129 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 122 def append(name, value) name = name.to_s value = self[name].to_s + value.to_s actions << UpdateAction.new(name => value) value end |
#clear ⇒ Object
Reset environment
181 182 183 184 185 186 187 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 181 def clear value = to_h actions.clear value end |
#delete(name) ⇒ Object
Delete variable
151 152 153 154 155 156 157 158 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 151 def delete(name) # Rescue value, before it is deleted value = to_h[name.to_s] actions << RemoveAction.new(name.to_s) value end |
#fetch(name, default = UNDEFINED) ⇒ Object
Fetch variable from environment
78 79 80 81 82 83 84 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 78 def fetch(name, default = UNDEFINED) if default == UNDEFINED to_h.fetch name.to_s else to_h.fetch name.to_s, default end end |
#key?(name) ⇒ Boolean
Check if variable exist
90 91 92 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 90 def key?(name) to_h.key? name.to_s end |
#nest ⇒ Object
189 190 191 192 193 194 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 189 def nest old_actions = @actions.dup yield(self) ensure @actions = old_actions end |
#prepend(name, value) ⇒ Object
Prepend value to variable
138 139 140 141 142 143 144 145 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 138 def prepend(name, value) name = name.to_s value = value.to_s + self[name].to_s actions << UpdateAction.new(name => value) value end |
#respond_to_missing?(name, _private) ⇒ Boolean
Check for respond_to
168 169 170 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 168 def respond_to_missing?(name, _private) to_h.respond_to? name end |
#to_h ⇒ Hash
Convert to hash
176 177 178 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 176 def to_h actions.inject(hash_from_env.merge(env)) { |a, e| e.call(a) } end |
#update(other_env) { ... } ⇒ Object
Update environment with other en
65 66 67 68 69 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 65 def update(other_env) actions << UpdateAction.new(other_env) self end |