env_setup 0.1.4 → 0.1.5

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