module Aws::Endpoints::Templater

def replace(capture, parameters, assigns)

Replaces the captured value with values from parameters or assign
def replace(capture, parameters, assigns)
  # Pound sigil is used for getAttr calls
  indexes = capture.split('#')
  # no sigil found, just do substitution
  if indexes.size == 1
    extract_value(capture, parameters, assigns)
  # sigil was found, need to call getAttr
  elsif indexes.size == 2
    ref, property = indexes
    param = extract_value(ref, parameters, assigns)
    Matchers.attr(param, property)
  else
    raise "Invalid templatable value: #{capture}"
  end
end