env_setup 0.1.6 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c41acc02b85485891e7ac909d0711f650200c8cf8848840b78554b558f171d7
4
- data.tar.gz: e12dd5cd3edaab85dad74a0c1ca3472ea750c2c7c1a84ca0fd7d37e70d241875
3
+ metadata.gz: 9eac51205869d1c0692b2e0f646c850ab73d501c4fb5991317f90c9a4bda8841
4
+ data.tar.gz: 25367896b58d2a8b2f173dd7b6f1a2b044b29c1329e00b1e6b64b45475f36ef1
5
5
  SHA512:
6
- metadata.gz: 9cf9f31c65b9dbbe098f1a5477f7d8ab4011be7ead7e7020fe8f2e96f1ecea8c83985b2d5bb4bdc2b6a3253238e3a5adf40ff199405866a5e37377652ce7a560
7
- data.tar.gz: 7220349ce399a398023b5c4e78fe949d81a4664c36f6cdfc4a641f38de23fe115fd52682433629f122e2217233330f6a9bc9403388b9457a0498a174fdd23081
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.merge(secrets).each do |key, var_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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EnvSetup
4
- VERSION = '0.1.6'
4
+ VERSION = '0.1.8'
5
5
  end
@@ -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
- 'HOST' => {"pattern" => "wss://{{APP_NAME}}-community2-cable.{{DOMAIN}}/cable"},
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.6
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-05-26 00:00:00.000000000 Z
11
+ date: 2021-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler