class Psenv::Retriever

Public Class Methods

call(path) click to toggle source
# File lib/psenv/retriever.rb, line 30
def self.call(path)
  new(path).call
end
new(path) click to toggle source
# File lib/psenv/retriever.rb, line 18
def initialize(path)
  @path = path
end

Public Instance Methods

call() click to toggle source
# File lib/psenv/retriever.rb, line 22
def call
  Hash[
    parameters.
      map { |parameter| Parameter.new(parameter) }.
      map { |parameter| [parameter.name, parameter.value] }
  ]
end

Private Instance Methods

parameters() click to toggle source
# File lib/psenv/retriever.rb, line 40
def parameters
  parameters = []
  response = ssm.get_parameters_by_path(path: @path, with_decryption: true)
  parameters << response.parameters

  while response.next_page?
    response = response.next_page
    parameters << response.parameters
  end

  parameters.flatten
rescue StandardError => error
  raise RetrieveError, error
end
ssm() click to toggle source
# File lib/psenv/retriever.rb, line 36
def ssm
  @ssm ||= Aws::SSM::Client.new
end