class Addressable::Template

def parse_template_expansion(capture, mapping={})

Returns:
  • (Array) -

Parameters:
  • mapping (Hash) -- An optional mapping to merge defaults into.
  • expansion (String) -- The operator String.
def parse_template_expansion(capture, mapping={})
  operator, argument, variables = capture[1...-1].split("|", -1)
  operator.gsub!(/^\-/, "")
  variables = variables.split(",", -1)
  mapping = (variables.inject({}) do |accu, var|
    varname, _, vardefault = var.scan(/^(.+?)(=(.*))?$/)[0]
    accu[varname] = vardefault
    accu
  end).merge(mapping)
  variables = variables.map { |var| var.gsub(/=.*$/, "") }
  return operator, argument, variables, mapping
end