evt-env_var 0.0.0.0 → 2.1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6570253b66d9b95ee28accb2cc97a335eedb0c94529fb46f73fe1fb0e822ee0f
4
- data.tar.gz: a0387333a815636aa777ad038e405e28cf5687d4496c80783412865557349141
3
+ metadata.gz: fdf7c13dea6e91b3b73c7eabffd6b7f7bdcd5c967ffb417d7a1cdb4b6274c1d6
4
+ data.tar.gz: 2d2a51747240a9bdd0d5b0941846e665fafd833871d78c9cd4d700f8cd1b90fe
5
5
  SHA512:
6
- metadata.gz: 30a64fd6165b38a1895e2166efd60bffa5dd95a68219de0a5a0019e1112d9d63b52cc59010e8acd80cc849db7be2e06cffb23da2f70569d5fa5dde6f9c6977be
7
- data.tar.gz: 6f10cb89a585cc3a3e8ea5ddebfb64c1e169c15f6ac3c9e9ed4f9ac68990819c10ee7e89df87570f7650bdc4dc81b544ef763e9236f19f72e65500089b60bf23
6
+ metadata.gz: b2966102d7353f6dc03885c91c04b50d62797569b8534928fd95f83865633955030c1ca5f045e17096d995a00741676c3c7a5723a65174698b18532c37dadb93
7
+ data.tar.gz: dc7ae1bd876879ba6848aae5980dc35fc34005acd80c4c27de028d65436a8cc2e414e77426e9e24690c30b862d29a20541f7988df50c2eaacc88fe1eed95689b
@@ -0,0 +1,9 @@
1
+ module EnvVar
2
+ module Controls
3
+ module VariableName
4
+ def self.random
5
+ "TEST_#{SecureRandom.hex}"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1 @@
1
+ require "env_var/controls/variable_name.rb"
@@ -0,0 +1,80 @@
1
+ module EnvVar
2
+ Error = Class.new(StandardError)
3
+
4
+ def self.logger
5
+ Log.get(self)
6
+ end
7
+
8
+ def self.get(name)
9
+ logger.trace { "Getting environment variable (Name: #{name.inspect})" }
10
+ value = ENV[name]
11
+ logger.debug { "Got environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
12
+
13
+ value
14
+ end
15
+
16
+ def self.fetch(name)
17
+ logger.trace { "Fetching environment variable (Name: #{name.inspect})" }
18
+ value = ENV.fetch(name)
19
+ logger.debug { "Fetched environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
20
+
21
+ value
22
+ end
23
+
24
+ def self.set(name, value)
25
+ logger.trace { "Setting environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
26
+ ENV[name] = value
27
+ logger.debug { "Set environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
28
+
29
+ value
30
+ end
31
+
32
+ def self.unset(name)
33
+ logger.trace { "Unsetting environment variable (Name: #{name.inspect})" }
34
+ value = ENV.delete(name)
35
+ logger.debug { "Unset environment variable (Name: #{name.inspect}, Value: #{value.inspect})" }
36
+
37
+ value
38
+ end
39
+
40
+ def self.push(name_or_hash, value=nil, &action)
41
+ raise Error, "Push must be invoked with a block" if action.nil?
42
+
43
+ values = nil
44
+
45
+ if name_or_hash.is_a?(String)
46
+ name = name_or_hash
47
+ values = { name => value }
48
+ else
49
+ values = name_or_hash
50
+ end
51
+
52
+ original_values = push_values(values, &action)
53
+
54
+ original_values
55
+ end
56
+
57
+ def push_values(hash, &action)
58
+ logger.trace { "Pushing environment variables (#{hash.inspect})" }
59
+
60
+ original_values = {}
61
+
62
+ hash.each do |name, value|
63
+ original_values[name] = get(name)
64
+
65
+ set(name, value)
66
+ end
67
+
68
+ begin
69
+ action.call
70
+
71
+ logger.debug { "Pushed environment variables (#{values.inspect})" }
72
+
73
+ original_values
74
+ ensure
75
+ original_values.each do |name, original_value|
76
+ set(name, original_value)
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,7 @@
1
+ module EnvVar
2
+ class Log < ::Log
3
+ def tag!(tags)
4
+ tags << :env_var
5
+ end
6
+ end
7
+ end
data/lib/env_var.rb CHANGED
@@ -0,0 +1,4 @@
1
+ require "log"
2
+
3
+ require "env_var/log"
4
+ require "env_var/env_var"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-env_var
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.0
4
+ version: 2.1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
@@ -44,7 +44,11 @@ extensions: []
44
44
  extra_rdoc_files: []
45
45
  files:
46
46
  - lib/env_var.rb
47
- homepage: https://github.com/eventide-project/env_var
47
+ - lib/env_var/controls.rb
48
+ - lib/env_var/controls/variable_name.rb
49
+ - lib/env_var/env_var.rb
50
+ - lib/env_var/log.rb
51
+ homepage: https://github.com/eventide-project/mimic
48
52
  licenses:
49
53
  - MIT
50
54
  metadata: {}