Мы должны обрабатывать указанные пользователем форматы даты в нашем приложении. Мы решили использовать Date.strptime
для анализа и проверки, что прекрасно работает, за исключением того, что оно просто игнорирует любые введенные данные мусора. Вот сеанс irb, демонстрирующий проблему
ree-1.8.7-2010.01 > require 'date'
=> true
ree-1.8.7-2010.01 > d = Date.strptime '2001-01-01failfailfail', '%Y-%m-%d'
=> #<Date: 4903821/2,0,2299161>
ree-1.8.7-2010.01 > d.to_s
=> "2001-01-01"
что мы хотели бы, так это поведение, подобное этому
ree-1.8.7-2010.01 > d = Date.strptime '2001failfailfail-01-01', '%Y-%m-%d'
ArgumentError: invalid date
Любые предложения будут оценены