class ViewModel::ActiveRecord::ReferencedCollectionUpdate::Parser

def parse_contents(values)

def parse_contents(values)
  invalid_entries = values.reject { |h| ref_hash?(h) }
  if invalid_entries.present?
    raise ViewModel::DeserializationError::InvalidSyntax.new(
      "Appended/Updated entities must be specified as '#{ViewModel::REFERENCE_ATTRIBUTE}' style hashes." \
      "Invalid entries: #{invalid_entries}",
      blame_reference)
  end
  values.map do |x|
    ref = ViewModel.extract_reference_metadata(x)
    unless valid_reference_keys.include?(ref)
      raise ViewModel::DeserializationError::InvalidSharedReference.new(ref, blame_reference)
    end
    ref
  end
end