Module: EnvVar
- Defined in:
- lib/env_var/log.rb,
lib/env_var/env_var.rb,
lib/env_var/controls/variable_name.rb
Defined Under Namespace
Modules: Controls
Classes: Log
Constant Summary
collapse
- Error =
Class.new(StandardError)
Class Method Summary
collapse
Class Method Details
.fetch(name) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/env_var/env_var.rb', line 16
def self.fetch(name)
logger.trace { "Fetching environment variable (Name: #{name.inspect})" }
value = ENV.fetch(name)
logger.debug { "Fetched environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
value
end
|
.get(name) ⇒ Object
8
9
10
11
12
13
14
|
# File 'lib/env_var/env_var.rb', line 8
def self.get(name)
logger.trace { "Getting environment variable (Name: #{name.inspect})" }
value = ENV[name]
logger.debug { "Got environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
value
end
|
.logger ⇒ Object
4
5
6
|
# File 'lib/env_var/env_var.rb', line 4
def self.logger
Log.get(self)
end
|
.push(name_or_hash, value = nil, &action) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/env_var/env_var.rb', line 52
def self.push(name_or_hash, value=nil, &action)
raise Error, "Push must be invoked with a block" if action.nil?
values = nil
if name_or_hash.is_a?(String)
name = name_or_hash
values = { name => value }
else
values = name_or_hash
end
original_values = push_values(values, &action)
original_values
end
|
.push_values(hash, &action) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/env_var/env_var.rb', line 69
def self.push_values(hash, &action)
logger.trace { "Pushing environment variables (#{hash.inspect})" }
original_values = {}
hash.each do |name, value|
original_values[name] = get(name)
set(name, value)
end
begin
action.call
logger.debug { "Pushed environment variables (#{hash.inspect})" }
original_values
ensure
original_values.each do |name, original_value|
set(name, original_value)
end
end
end
|
.set(name, value) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/env_var/env_var.rb', line 24
def self.set(name, value)
logger.trace { "Setting environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
ENV[name] = value
logger.debug { "Set environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
value
end
|
.unset(name, &action) ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/env_var/env_var.rb', line 32
def self.unset(name, &action)
logger.trace { "Unsetting environment variable (Name: #{name.inspect})" }
value = ENV.delete(name)
logger.debug { "Unset environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
return value if action.nil?
begin
action.call
value
ensure
if value.nil?
ENV.delete(name)
else
set(name, value)
end
end
end
|