env_setup 0.1.6 → 0.1.8
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 +4 -4
- data/lib/env_setup/env_builder.rb +10 -6
- data/lib/env_setup/version.rb +1 -1
- data/spec/env_setup/env_builder_spec.rb +12 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9eac51205869d1c0692b2e0f646c850ab73d501c4fb5991317f90c9a4bda8841
|
4
|
+
data.tar.gz: 25367896b58d2a8b2f173dd7b6f1a2b044b29c1329e00b1e6b64b45475f36ef1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8a31297a413089eb778c894904db38a0b8c57821ed14b09ecde3d0cadfb5066e9e3851a73fcb45d9857b91bc8725899d8f0e5ae722d754373ae740756dd31be
|
7
|
+
data.tar.gz: 0e92b90ebf6de86b492d7c6c74c15443a702476fd8a8e673d90dca9cc3fa02fbe47d4c02862483e405aa89032bb5a76181b79f83bc56b98144c7256f9c0742e5
|
@@ -19,7 +19,7 @@ module EnvSetup
|
|
19
19
|
|
20
20
|
def build_json
|
21
21
|
secrets = aws_secrets
|
22
|
-
configuration.template
|
22
|
+
secrets.merge(configuration.template).each do |key, var_template|
|
23
23
|
vars[key.to_s] = build_var(var_template)
|
24
24
|
end
|
25
25
|
vars
|
@@ -34,17 +34,21 @@ module EnvSetup
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def var_builder(var_template)
|
37
|
-
builder =
|
37
|
+
builder = var_builder_class(var_template)
|
38
|
+
|
39
|
+
raise "Invalid var builder: #{var_template.inspect}" unless builder
|
40
|
+
|
41
|
+
builder[:builder].new(var_template, vars.merge(inputs))
|
42
|
+
end
|
43
|
+
|
44
|
+
def var_builder_class(var_template)
|
45
|
+
[
|
38
46
|
{ builder: EnvSetup::Builder::Pattern, if: -> { var_template['pattern'] } },
|
39
47
|
{ builder: EnvSetup::Builder::NestedValue, if: -> { var_template['value'] } },
|
40
48
|
{ builder: EnvSetup::Builder::Input, if: -> { var_template['input'] } },
|
41
49
|
{ builder: EnvSetup::Builder::Generator, if: -> { var_template['generator'] } },
|
42
50
|
{ builder: EnvSetup::Builder::Json, if: -> { var_template.is_a?(Hash) } }
|
43
51
|
].find { |option| option[:if].call }
|
44
|
-
|
45
|
-
raise "Invalid var builder: #{var_template.inspect}" unless builder
|
46
|
-
|
47
|
-
builder[:builder].new(var_template, vars.merge(inputs))
|
48
52
|
end
|
49
53
|
|
50
54
|
def configuration
|
data/lib/env_setup/version.rb
CHANGED
@@ -21,12 +21,16 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
21
21
|
'APP_PASSWORD' => {
|
22
22
|
'generator' => 'salt'
|
23
23
|
},
|
24
|
+
'HOST' => { 'pattern' => 'wss://{{APP_NAME}}-community2-cable.{{DOMAIN}}/cable' },
|
24
25
|
'INTEGRATION_APP_HOST' => {
|
25
26
|
'input' => 'INTEGRATION_APP_HOST'
|
26
27
|
},
|
27
28
|
'INTEGRATION_APP_URL' => {
|
28
29
|
'pattern' => '{{INTEGRATION_APP_HOST}}/api/integrate'
|
29
30
|
},
|
31
|
+
'WELCOME_MSG' => {
|
32
|
+
'pattern' => 'Welcome {{USERNAME}}'
|
33
|
+
},
|
30
34
|
'DOMAINS' => {
|
31
35
|
'APP' => ['abc.com', 'def.com'],
|
32
36
|
'ADMIN' => ['abc-admin.com', 'def-admin.com']
|
@@ -41,14 +45,16 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
41
45
|
let(:expected_json) do
|
42
46
|
{
|
43
47
|
'LANG' => 'en_US.UTF-8',
|
48
|
+
'USERNAME' => 'foo',
|
49
|
+
'HOST' => 'wss://pr-123-community2-cable.foobar.com/cable',
|
44
50
|
'DOMAIN' => 'foobar.com',
|
45
51
|
'APP_NAME' => 'pr-123',
|
46
|
-
'HOST' => 'wss://pr-123-community2-cable.foobar.com/cable',
|
47
52
|
'APP_HOST' => 'https://pr-123.foobar.com',
|
48
53
|
'APP_SECRET' => secret,
|
49
54
|
'APP_PASSWORD' => salt,
|
50
55
|
'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
|
51
56
|
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
|
57
|
+
'WELCOME_MSG' => 'Welcome foo',
|
52
58
|
'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
|
53
59
|
}
|
54
60
|
end
|
@@ -69,7 +75,7 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
69
75
|
allow_any_instance_of(EnvSetup::EnvBuilder).to receive(:aws_secrets).and_return(
|
70
76
|
{
|
71
77
|
'LANG' => 'en_US.UTF-8',
|
72
|
-
'
|
78
|
+
'USERNAME' => 'foo'
|
73
79
|
}
|
74
80
|
)
|
75
81
|
end
|
@@ -81,7 +87,7 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
81
87
|
|
82
88
|
context 'without aws secrets manager' do
|
83
89
|
let(:inputs) do
|
84
|
-
{ 'INTEGRATION_APP_HOST' => 'https://integrate.foobar2.com' }
|
90
|
+
{ 'INTEGRATION_APP_HOST' => 'https://integrate.foobar2.com', 'USERNAME' => 'foo' }
|
85
91
|
end
|
86
92
|
let(:expected_json) do
|
87
93
|
{
|
@@ -90,8 +96,10 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
90
96
|
'APP_HOST' => 'https://pr-123.foobar.com',
|
91
97
|
'APP_SECRET' => secret,
|
92
98
|
'APP_PASSWORD' => salt,
|
99
|
+
'HOST' => 'wss://pr-123-community2-cable.foobar.com/cable',
|
93
100
|
'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
|
94
101
|
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
|
102
|
+
'WELCOME_MSG' => 'Welcome foo',
|
95
103
|
'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
|
96
104
|
}
|
97
105
|
end
|
@@ -115,6 +123,7 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
115
123
|
|
116
124
|
describe '.build_var' do
|
117
125
|
let(:inputs) { { 'MY_VAR' => 'Hey!', 'FOO' => 'bar', 'ENV_NAME' => 'env-test' } }
|
126
|
+
let(:env_name) { 'env-test' }
|
118
127
|
let(:template) { {} }
|
119
128
|
let(:builder) { described_class.new(inputs) }
|
120
129
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env_setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonatas Daniel Hermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|