env_setup 0.1.4 → 0.1.5

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: 2f4aa1c7e1f56a6737f18e79c2bd31e145976aca0858f7c99475dfcc017b2a0b
4
- data.tar.gz: 0d24c9ee5067412f5692092ed76ac43730af2f1fa084a858a689fdcfa47c72fa
3
+ metadata.gz: fab5063a61c7e2b0547746897fd1a7f97670260536dd4e6241df6cf93fb1c615
4
+ data.tar.gz: a4a8d30d9f3349d0e570313d446a35fbac0eec88460f9097623a731dc38fb05d
5
5
  SHA512:
6
- metadata.gz: 99f6b392dff84e5b1e21ca7b2f744ad311fdc46813a9b784a10f409be7ba152ee32f2f7c80edc7cddff0128ca93bfa9271caea52d7d6aa39a582d53841463853
7
- data.tar.gz: 3a7ae184a4282a53a94e999507ad7e65f5d30ce5b4c86fe060200ea6c6e863e0551d196a107c8ce675ddca0810acf5dc066fb2782aafbe145e66b11df7e468bc
6
+ metadata.gz: ad71c57f6057785bae9e9723e265b928bc02412b4eb84d604c5b89429d0da2bf2920d8896b5ec7bf5b53410cbb79fc7d52086b5fa294725b6477bce18988e1ec
7
+ data.tar.gz: 040e5a7b9b8b57d4d24cbdb6faab945b900f34ad2e47677f9c52e8050bacda99a1644bdffb368cf0eb39d0990d487d4d473ed575edf4922d8e0f6874ae55fc13
data/bin/env_setup CHANGED
@@ -5,7 +5,6 @@ require 'json'
5
5
 
6
6
  inputs = Hash[ARGV.flat_map { |s| s.scan(/--?([^=\s]+)(?:=(\S+))?/) }]
7
7
  template_file = inputs.delete('TEMPLATE')
8
- puts "template #{template_file}"
9
8
  template = JSON.parse(File.read(template_file))
10
9
  env_file = inputs.delete('ENV_FILE') || '.env'
11
10
  aws_access_key = inputs.delete('AWS_ACCESS_KEY')
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'env_setup/builder/base'
4
+ require 'json'
5
+
6
+ module EnvSetup
7
+ module Builder
8
+ class Json < Base
9
+ def call
10
+ template.to_s
11
+ end
12
+ end
13
+ end
14
+ end
@@ -5,6 +5,7 @@ require 'env_setup/builder/pattern'
5
5
  require 'env_setup/builder/input'
6
6
  require 'env_setup/builder/generator'
7
7
  require 'env_setup/builder/nested_value'
8
+ require 'env_setup/builder/json'
8
9
  require 'aws-sdk-secretsmanager'
9
10
 
10
11
  module EnvSetup
@@ -37,7 +38,8 @@ module EnvSetup
37
38
  { builder: EnvSetup::Builder::Pattern, if: -> { var_template['pattern'] } },
38
39
  { builder: EnvSetup::Builder::NestedValue, if: -> { var_template['value'] } },
39
40
  { builder: EnvSetup::Builder::Input, if: -> { var_template['input'] } },
40
- { builder: EnvSetup::Builder::Generator, if: -> { var_template['generator'] } }
41
+ { builder: EnvSetup::Builder::Generator, if: -> { var_template['generator'] } },
42
+ { builder: EnvSetup::Builder::Json, if: -> { var_template.is_a?(Hash) } }
41
43
  ].find { |option| option[:if].call }
42
44
 
43
45
  raise "Invalid var builder: #{var_template.inspect}" unless builder
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EnvSetup
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
5
5
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ require 'env_setup/builder/json'
3
+
4
+ RSpec.describe EnvSetup::Builder::Json do
5
+ let(:builder) { described_class.new(value, params) }
6
+ let(:params) { {} }
7
+ let(:value) do
8
+ {
9
+ 'some' => {
10
+ 'custom' => 'data'
11
+ }
12
+ }
13
+ end
14
+
15
+ it 'generates json string format' do
16
+ expect(builder.call).to eq "{\"some\"=>{\"custom\"=>\"data\"}}"
17
+ end
18
+ end
@@ -27,6 +27,10 @@ RSpec.describe EnvSetup::EnvBuilder do
27
27
  },
28
28
  'INTEGRATION_APP_URL' => {
29
29
  'pattern' => '{{INTEGRATION_APP_HOST}}/api/integrate'
30
+ },
31
+ 'DOMAINS' => {
32
+ 'APP' => ['abc.com', 'def.com'],
33
+ 'ADMIN' => ['abc-admin.com', 'def-admin.com']
30
34
  }
31
35
  }
32
36
  end
@@ -45,7 +49,8 @@ RSpec.describe EnvSetup::EnvBuilder do
45
49
  'APP_SECRET' => secret,
46
50
  'APP_PASSWORD' => salt,
47
51
  'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
48
- 'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate"
52
+ 'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
53
+ 'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
49
54
  }
50
55
  end
51
56
 
@@ -88,7 +93,8 @@ RSpec.describe EnvSetup::EnvBuilder do
88
93
  'APP_SECRET' => secret,
89
94
  'APP_PASSWORD' => salt,
90
95
  'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
91
- 'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate"
96
+ 'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
97
+ 'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
92
98
  }
93
99
  end
94
100
 
@@ -108,70 +114,6 @@ RSpec.describe EnvSetup::EnvBuilder do
108
114
  expect(described_class.new(inputs).build_json).to eq expected_json
109
115
  end
110
116
  end
111
-
112
- context 'test' do
113
- before do
114
- allow_any_instance_of(EnvSetup::Builder::Generator).to receive(:secret).and_return("secret")
115
- allow_any_instance_of(EnvSetup::Builder::Generator).to receive(:salt).and_return("salt")
116
-
117
- allow(EnvSetup).to receive(:configuration).and_return(
118
- EnvSetup::Configuration.new.tap do |config|
119
- config.env_name = 'pr-123'
120
- config.template = template
121
- end
122
- )
123
- end
124
-
125
- let(:template) do
126
- {
127
- "ASSET_HOST": {
128
- "pattern": "https://{{ENV_NAME}}.{{DOMAIN}}"
129
- },
130
- "CANONICAL_URL": {
131
- "pattern": "https://{{ENV_NAME}}.{{DOMAIN}}"
132
- },
133
- "DISCOURSE_AUTH_DOMAIN": {
134
- "pattern": "https://{{ENV_NAME}}.goeatrightnow.com"
135
- },
136
- "DOMAIN_NAME": {
137
- "input": "DOMAIN"
138
- },
139
- "MESSENGER_URI": {
140
- "input": "MESSENGER_URI"
141
- },
142
- "MSCOMMUNITY_URL": {
143
- "input": "MSCOMMUNITY_URL"
144
- },
145
- "PROGRAM_BBS_APP_HOST": {
146
- "pattern": "{{ENV_NAME}}.breathebysharecare.com"
147
- },
148
- "PROGRAM_CTQ_APP_HOST": {
149
- "pattern": "{{ENV_NAME}}.cravingtoquit.com"
150
- },
151
- "PROGRAM_ERN_APP_HOST": {
152
- "pattern": "{{ENV_NAME}}.goeatrightnow.com"
153
- },
154
- "PROGRAM_UA_APP_HOST": {
155
- "pattern": "{{ENV_NAME}}.unwindinganxiety.com"
156
- },
157
- "PROGRAM_UFS_APP_HOST": {
158
- "pattern": "{{ENV_NAME}}.unwindingfromsharecare.com"
159
- }
160
- }
161
- end
162
-
163
- let(:inputs) do
164
- {
165
- 'DOMAIN' => 'mindsciences.net',
166
- 'MESSENGER_URI' => 'messenger.mindsciences.net',
167
- 'MSCOMMUNITY_URL' => 'mscom.mindsciences.net'
168
- }
169
- end
170
-
171
- it 'generate json' do
172
- described_class.new(inputs).build_json
173
- end
174
- end
175
117
  end
176
118
 
177
119
  describe '.build_var' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: env_setup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonatas Daniel Hermann
@@ -96,6 +96,7 @@ files:
96
96
  - lib/env_setup/builder/base.rb
97
97
  - lib/env_setup/builder/generator.rb
98
98
  - lib/env_setup/builder/input.rb
99
+ - lib/env_setup/builder/json.rb
99
100
  - lib/env_setup/builder/nested_value.rb
100
101
  - lib/env_setup/builder/pattern.rb
101
102
  - lib/env_setup/configuration.rb
@@ -103,6 +104,7 @@ files:
103
104
  - lib/env_setup/version.rb
104
105
  - spec/env_setup/builder/generator_spec.rb
105
106
  - spec/env_setup/builder/input_spec.rb
107
+ - spec/env_setup/builder/json_spec.rb
106
108
  - spec/env_setup/builder/pattern_spec.rb
107
109
  - spec/env_setup/env_builder_spec.rb
108
110
  - spec/env_setup_spec.rb
@@ -134,5 +136,6 @@ test_files:
134
136
  - spec/env_setup_spec.rb
135
137
  - spec/env_setup/env_builder_spec.rb
136
138
  - spec/env_setup/builder/generator_spec.rb
139
+ - spec/env_setup/builder/json_spec.rb
137
140
  - spec/env_setup/builder/pattern_spec.rb
138
141
  - spec/env_setup/builder/input_spec.rb