class Addressable::Template

def extract_list_operator(value, processor, argument, variables, mapping)

Returns:
  • (String) - The extracted result.

Parameters:
  • mapping (Hash) -- The mapping of variables to values.
  • variables (Array) -- The variables the operator is working on.
  • argument (String) -- The argument to the operator.
  • processor (#restore) -- The processor object.
  • value (String) -- The unparsed value to extract from.
def extract_list_operator(value, processor, argument, variables, mapping)
  if variables.size != 1
    raise InvalidTemplateOperatorError,
      "Template operator 'list' takes exactly one variable."
  end
  values = value.split(argument, -1)
  values.pop if values[-1] == ""
  if processor && processor.respond_to?(:restore)
    values.map! { |value| processor.restore(variables.first, value) }
  end
  if mapping[variables.first] == nil || mapping[variables.first] == values
    mapping[variables.first] = values
  else
    raise TemplateOperatorAbortedError,
      "Value mismatch for repeated variable."
  end
end