Вы могли бы написать ...
def friendly_date(input)
Date.strptime(input, "%m/%d/%Y").strftime("%A, %B %e")
end
... но это не будет улучшением. Он выполняет две операции: анализ и форматирование, поэтому его легче понять как две строки. Называя переменную просто date
, это улучшение, потому что внутри этой функции это просто дата.
def friendly_date(input)
date = Date.strptime(input, "%m/%d/%Y")
date.strftime("%A, %B %e")
end
Лучший способ упростить ваш код - использовать одну функцию, анализирующую то, что дает указатель даты, в Date
, а другую - для форматирования любого Date
.
.
def date_from_datepicker(from_datepicker)
Date.strptime(input, "%m/%d/%Y")
end
def friendly_date(date)
date.strftime("%A, %B %e")
end
Теперь у вас есть универсальная функция для преобразования формата указателя даты в Date
. И универсальная функция для преобразования любого Date
или Time
в ваш предпочтительный формат.
Теперь вы немедленно нормализовали бы вывод из вашего средства выбора даты в Date
и преобразовывали бы его только в ваш дружественный формат по мере необходимости. Это облегчит работу со всеми датами, поскольку объекты be Date
будут как можно дольше.
input_date = date_from_datepicker(params['date'])
...work with it like any other Date...
puts friendly_date(input_date)
# And it works on any Date.
puts friendly_date(some_other_date)