env_configuration 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,48 +1,43 @@
1
- require 'aws-sdk-ssm'
2
-
3
- module EnvConfiguration
4
- class AwsSsmParameterStoreWriter
5
- attr_accessor :env_name #allow to reset env but not region
6
-
7
- # if you set ENV['AWS_ACCESS_KEY_ID'],ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_REGION']
8
- # you don't need to pass the options
9
- # { access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: ENV['AWS_REGION']
10
- def initialize(env_name, options = {})
11
- @env_name = env_name
12
- @options = options
13
- end
14
-
15
- def client
16
- @client ||= Aws::SSM::Client.new(@options)
17
- end
18
-
19
- def put_configs_from_yaml_file(config_yml)
20
- configs = YAML.load_file(config_yml)[@env_name]
21
- put_configs(configs)
22
- end
23
-
24
- def put_configs(configs)
25
- configs.each do |key, value|
26
- put_config(key, value) if !value.empty? #aws don't allow value to have empty value
27
- end
28
- end
29
-
30
- def put_config(name, value, type='String')
31
- Rails.logger.info { "preparing: #{name}=#{value}" }
32
-
33
- param_name = "/#{@env_name}/#{name}"
34
-
35
- options = {
36
- name: param_name, # required
37
- value: value, # required
38
- type: type, # required, accepts String, StringList, SecureString
39
- overwrite: true,
40
- tier: "Standard", # accepts Standard, Advanced
41
- }
42
- response = client.put_parameter(options)
43
-
44
- Rails.logger.info { "setting: #{options}" }
45
- response
46
- end
47
- end
48
- end
1
+ module EnvConfiguration
2
+ class AwsSsmParameterStoreWriter
3
+ attr_accessor :env_name #allow to reset env but not region
4
+
5
+ def initialize(env_name, options = {})
6
+ @env_name = env_name
7
+ @options = options
8
+ end
9
+
10
+ def client
11
+ @client ||= Aws::SSM::Client.new(@options)
12
+ end
13
+
14
+ def put_configs_from_yaml_file(config_yml)
15
+ configs = YAML.load_file(config_yml)[@env_name]
16
+ put_configs(configs)
17
+ end
18
+
19
+ def put_configs(configs)
20
+ configs.each do |key, value|
21
+ put_config(key, value)
22
+ end
23
+ end
24
+
25
+ def put_config(name, value, type='String')
26
+ Rails.logger.info { "preparing: #{name}=#{value}" }
27
+
28
+ param_name = "/#{@env_name}/#{name}"
29
+
30
+ options = {
31
+ name: param_name, # required
32
+ value: value, # required
33
+ type: type, # required, accepts String, StringList, SecureString
34
+ overwrite: true,
35
+ tier: "Standard", # accepts Standard, Advanced
36
+ }
37
+ response = client.put_parameter(options)
38
+
39
+ Rails.logger.info { "setting: #{options}" }
40
+ response
41
+ end
42
+ end
43
+ end
@@ -1,42 +1,42 @@
1
- module EnvConfiguration
2
-
3
- class Configuration
4
- attr_accessor :dot_env, :aws_ssm_parameter_store, :yaml
5
-
6
- # ------ :dot_env ---------
7
- # :dot_env_file
8
-
9
- def dot_env_file
10
- dot_env && dot_env[:dot_env_file]
11
- end
12
-
13
- # ------ :yaml ---------
14
- # :yaml_file, :section
15
- def yaml_file
16
- yaml && yaml[:yaml_file]
17
- end
18
-
19
- def yaml_section
20
- yaml && yaml[:section]
21
- end
22
-
23
- # ------ :aws_ssm_paramer_store ---------
24
- # :access_key_id, :secret_access_key, :region, :path
25
- def aws_access_key_id
26
- aws_ssm_parameter_store && aws_ssm_parameter_store[:access_key_id]
27
- end
28
-
29
- def aws_secret_access_key
30
- aws_ssm_parameter_store && aws_ssm_parameter_store[:secret_access_key]
31
- end
32
-
33
- def aws_region
34
- aws_ssm_parameter_store && aws_ssm_parameter_store[:region]
35
- end
36
-
37
- def aws_path
38
- aws_ssm_parameter_store && aws_ssm_parameter_store[:path]
39
- end
40
- end
41
-
1
+ module EnvConfiguration
2
+
3
+ class Configuration
4
+ attr_accessor :dot_env, :aws_ssm_parameter_store, :yaml
5
+
6
+ # ------ :dot_env ---------
7
+ # :dot_env_file
8
+
9
+ def dot_env_file
10
+ dot_env && dot_env[:dot_env_file]
11
+ end
12
+
13
+ # ------ :yaml ---------
14
+ # :yaml_file, :section
15
+ def yaml_file
16
+ yaml && yaml[:yaml_file]
17
+ end
18
+
19
+ def yaml_section
20
+ yaml && yaml[:section]
21
+ end
22
+
23
+ # ------ :aws_ssm_paramer_store ---------
24
+ # :access_key_id, :secret_access_key, :region, :path
25
+ def aws_access_key_id
26
+ aws_ssm_parameter_store && aws_ssm_parameter_store[:access_key_id]
27
+ end
28
+
29
+ def aws_secret_access_key
30
+ aws_ssm_parameter_store && aws_ssm_parameter_store[:secret_access_key]
31
+ end
32
+
33
+ def aws_region
34
+ aws_ssm_parameter_store && aws_ssm_parameter_store[:region]
35
+ end
36
+
37
+ def aws_path
38
+ aws_ssm_parameter_store && aws_ssm_parameter_store[:path]
39
+ end
40
+ end
41
+
42
42
  end
@@ -1,36 +1,36 @@
1
- module EnvConfiguration
2
-
3
- class Configurator
4
- def self.load(adapter_name, options={})
5
- if adapter_name.class == Symbol
6
- loader = self.adapter(adapter_name, options)
7
- loader.load
8
- else
9
- adapter_name.load
10
- end
11
- end
12
-
13
- def self.adapter(adapter_name, options={})
14
- case adapter_name
15
- when :dot_env
16
- require "env_configuration/adapter/base"
17
- require "env_configuration/adapter/dot_env_adapter"
18
- Adapter::DotEnvAdapter.new(options)
19
- when :aws_ssm_parameter_store
20
- require 'aws-sdk-ssm'
21
- require "env_configuration/adapter/base"
22
- require "env_configuration/adapter/aws_ssm_parameter_store_adapter"
23
- require "env_configuration/aws_ssm_parameter_store_writer"
24
- Adapter::AwsSsmParameterStoreAdapter.new(options)
25
- when :yaml
26
- require "env_configuration/adapter/base"
27
- require "env_configuration/adapter/yaml_adapter"
28
- Adapter::YamlAdapter.new(options)
29
- else
30
- existings = [:dot_env, :yaml, :aws_ssm_parameter_store]
31
- raise "adapter :#{adapter_name} must be one of the following #{existings}"
32
- end
33
- end
34
- end
35
- end
36
-
1
+ module EnvConfiguration
2
+
3
+ class Configurator
4
+ def self.load(adapter_name, options={})
5
+ if adapter_name.class == Symbol
6
+ loader = self.adapter(adapter_name, options)
7
+ loader.load
8
+ else
9
+ adapter_name.load
10
+ end
11
+ end
12
+
13
+ def self.adapter(adapter_name, options={})
14
+ case adapter_name
15
+ when :dot_env
16
+ require "env_configuration/adapter/base"
17
+ require "env_configuration/adapter/dot_env_adapter"
18
+ Adapter::DotEnvAdapter.new(options)
19
+ when :aws_ssm_parameter_store
20
+ require 'aws-sdk-ssm'
21
+ require "env_configuration/adapter/base"
22
+ require "env_configuration/adapter/aws_ssm_parameter_store_adapter"
23
+ require "env_configuration/aws_ssm_parameter_store_writer"
24
+ Adapter::AwsSsmParameterStoreAdapter.new(options)
25
+ when :yaml
26
+ require "env_configuration/adapter/base"
27
+ require "env_configuration/adapter/yaml_adapter"
28
+ Adapter::YamlAdapter.new(options)
29
+ else
30
+ existings = [:dot_env, :yaml, :aws_ssm_parameter_store]
31
+ raise "adapter :#{adapter_name} must be one of the following #{existings}"
32
+ end
33
+ end
34
+ end
35
+ end
36
+
@@ -1,3 +1,3 @@
1
- module EnvConfiguration
2
- VERSION = "0.1.1"
3
- end
1
+ module EnvConfiguration
2
+ VERSION = "1.0.0"
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: env_configuration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Channa Ly
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2019-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler