env_configuration 0.1.1 → 1.0.0

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