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
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, *args, &block) ⇒ Object
Pass on checks.
-
#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.
60 61 62 63 64 65 66 67 68 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 60 def initialize(env = ENV) @actions = [] @env = if RUBY_VERSION < '2.0' env.to_hash else env.to_h end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
Pass on checks
175 176 177 178 179 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 175 def method_missing(name, *args, &block) super unless to_h.respond_to? name to_h.send name, *args, &block end |
Instance Method Details
#[](name) ⇒ Object
Get value of variable
110 111 112 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 110 def [](name) to_h[name.to_s] end |
#[]=(name, value) ⇒ Object
Set value of variable
121 122 123 124 125 126 127 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 121 def []=(name, value) value = value.to_s actions << UpdateAction.new(name.to_s => value) value end |
#append(name, value) ⇒ Object
Append value to variable
136 137 138 139 140 141 142 143 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 136 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
199 200 201 202 203 204 205 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 199 def clear value = to_h actions.clear value end |
#delete(name) ⇒ Object
Delete variable
165 166 167 168 169 170 171 172 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 165 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
90 91 92 93 94 95 96 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 90 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
102 103 104 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 102 def key?(name) to_h.key? name.to_s end |
#prepend(name, value) ⇒ Object
Prepend value to variable
152 153 154 155 156 157 158 159 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 152 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
182 183 184 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 182 def respond_to_missing?(name, _private) to_h.respond_to? name end |
#to_h ⇒ Hash
Convert to hash
190 191 192 193 194 195 196 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 190 def to_h if RUBY_VERSION < '2.0' Marshal.load(Marshal.dump(prepared_environment.to_hash)) else Marshal.load(Marshal.dump(prepared_environment.to_h)) end end |
#update(other_env) { ... } ⇒ Object
Update environment with other en
77 78 79 80 81 |
# File 'lib/aruba/platforms/unix_environment_variables.rb', line 77 def update(other_env) actions << UpdateAction.new(other_env) UnixEnvironmentVariables.new(to_h) end |