Изящный анализ даты в Ruby

У меня есть два параметра даты в действии контроллера, которые я хотел бы вернуть к значению по умолчанию, если они равны нулю или анализ не удался.

К сожалению, похоже, что DateTime.strptime выдает исключение, если синтаксический анализ завершается неудачно, что заставляет меня написать это чудовище:

starting = if params[:starting].present?
  begin
    DateTime.strptime(params[:starting], "%Y-%m-%d")
  rescue
    @meeting_range.first
  end
else
  @meeting_range.first
end

Feels bad man. Есть ли способ проанализировать дату с помощью Ruby stdlib, который не требует блока begin ... rescue ? Хронический кажется излишним для этой ситуации.

19
задан Adam Lassek 25 April 2011 в 20:08
поделиться