Class: AwsSsmEnv::SnakeCaseNamingStrategy
- Inherits:
-
NamingStrategy
- Object
- NamingStrategy
- AwsSsmEnv::SnakeCaseNamingStrategy
- Defined in:
- lib/aws-ssm-env/naming_strategies/snakecase.rb
Overview
パラメータ名の階層表現をスネークケースに変換した値を環境変数名とする。 例えば、‘removed_prefix`が`/path`で`/path/to/environment_name`というパラメータ名なら ENVにパラメータ値がインジェクションされる。
Instance Method Summary collapse
-
#initialize(**args) ⇒ SnakeCaseNamingStrategy
constructor
ここの引数は AwsSsmEnv#load の呼び出し時に渡された引数がそのまま渡される。.
-
#parse_name(parameter) ⇒ String
パラメータ名からプレフィクスを除去してパス区切りをアンダースコアに変換後、大文字にして返す。.
Constructor Details
#initialize(**args) ⇒ SnakeCaseNamingStrategy
ここの引数は AwsSsmEnv#load の呼び出し時に渡された引数がそのまま渡される。
19 20 21 22 23 24 25 |
# File 'lib/aws-ssm-env/naming_strategies/snakecase.rb', line 19 def initialize(**args) @logger = args[:logger] @delimiter = detect_delimiter(args) removed_prefix = detect_prefix(args).sub(%r{/\z}, '') @removed_prefix = /\A#{Regexp.escape(removed_prefix)}/ @logger.debug("#{self.class.name} removed_prefix is #{@removed_prefix}") if @logger end |
Instance Method Details
#parse_name(parameter) ⇒ String
パラメータ名からプレフィクスを除去してパス区切りをアンダースコアに変換後、大文字にして返す。
31 32 33 34 |
# File 'lib/aws-ssm-env/naming_strategies/snakecase.rb', line 31 def parse_name(parameter) name_without_prefix = parameter.name.gsub(@removed_prefix, '') name_without_prefix.gsub(@delimiter, '_').upcase end |