class ViewModel::ActiveRecord::UpdateContext
def self.build!(root_update_data, referenced_update_data, root_type: nil)
def self.build!(root_update_data, referenced_update_data, root_type: nil) if root_type.present? && (bad_types = root_update_data.map(&:viewmodel_class).to_set.delete(root_type)).present? raise ViewModel::DeserializationError::InvalidViewType.new(root_type.view_name, bad_types.map { |t| ViewModel::Reference.new(t, nil) }) end self.new .build_root_update_operations(root_update_data, referenced_update_data) .assemble_update_tree end