class AwsSsmEnv::Loader
このgemのエントリポイントとなるクラス。メイン処理を行う。 AWS EC2 Parameters Storeからパラメータを取得してENVに書き込む。
@author Ryohei Sonoda @since 0.1.0
Public Class Methods
load(**args)
click to toggle source
メイン処理。引数の詳細は AwsSsmEnv#load
を参照。
# File lib/aws-ssm-env/loader.rb, line 12 def self.load(**args) new(args).load end
new(**args)
click to toggle source
# File lib/aws-ssm-env/loader.rb, line 16 def initialize(**args) parse_options(args) if @logger @logger.debug("#{self.class.name} overwrite: #{@overwrite}") @logger.debug("#{self.class.name} fetcher: #{@fetcher}") @logger.debug("#{self.class.name} naming_strategy: #{@naming_strategy}") end end
Public Instance Methods
load()
click to toggle source
# File lib/aws-ssm-env/loader.rb, line 25 def load @fetcher.each do |parameter| var_name = @naming_strategy.parse_name(parameter) @logger.debug("#{self.class.name} #{parameter.name} parameter value into ENV['#{var_name}']") if @logger send(@applier, var_name, parameter.value) end end
Private Instance Methods
apply(name, value)
click to toggle source
# File lib/aws-ssm-env/loader.rb, line 56 def apply(name, value) if ENV[name] return end apply!(name, value) end
apply!(name, value)
click to toggle source
# File lib/aws-ssm-env/loader.rb, line 63 def apply!(name, value) ENV[name] = value end
overwrite?(overwrite: nil, **)
click to toggle source
overwriteフラグが指定されているかどうかを返す。
# File lib/aws-ssm-env/loader.rb, line 48 def overwrite?(overwrite: nil, **) if overwrite.nil? false else overwrite.to_s.downcase == 'true' end end
parse_options(**options)
click to toggle source
# File lib/aws-ssm-env/loader.rb, line 35 def parse_options(**options) @logger = options[:logger] @fetcher = AwsSsmEnv::FetcherFactory.create_fetcher(options) @naming_strategy = AwsSsmEnv::NamingStrategyFactory.create_naming_strategy(options) @overwrite = overwrite?(options) if @overwrite @applier = :apply! else @applier = :apply end end