class ActiveRecord::AttributeAssignment::MultiparameterAttribute

def read_date

def read_date
  return if blank_date_parameter?
  set_values = values.values_at(1,2,3)
  begin
    Date.new(*set_values)
  rescue ArgumentError # if Date.new raises an exception on an invalid date
    instantiate_time_object(set_values).to_date # we instantiate Time object and convert it back to a date thus using Time's logic in handling invalid dates
  end
end