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 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