class ActiveRecord::AttributeAssignment::MultiparameterAttribute

def read_time

def read_time
  # If column is a :time (and not :date or :datetime) there is no need to validate if
  # there are year/month/day fields
  if cast_type.type == :time
    # if the column is a time set the values to their defaults as January 1, 1970, but only if they're nil
    { 1 => 1970, 2 => 1, 3 => 1 }.each do |key,value|
      values[key] ||= value
    end
  else
    # else column is a timestamp, so if Date bits were not provided, error
    validate_required_parameters!([1,2,3])
    # If Date bits were provided but blank, then return nil
    return if blank_date_parameter?
  end
  max_position = extract_max_param(6)
  set_values   = values.values_at(*(1..max_position))
  # If Time bits are not there, then default to 0
  (3..5).each { |i| set_values[i] = set_values[i].presence || 0 }
  instantiate_time_object(set_values)
end