Как я могу проверить строку даты, не спасая исключение, чтобы сохранить счастливым линтер Rubocop HandleExceptions?
У меня есть строка, которая может быть или не быть действительной датой.
Я хочу простой и понятный способ проверки, сохраняя при этом Рубокопа счастливым.
# TODO: Welcome suggestions for a better way to deal with this...
# rubocop:disable HandleExceptions
def self.valid_date?(date)
Date.parse(date)
rescue ArgumentError
end
# rubocop:enable HandleExceptions
Я на самом деле чувствую, что это чистый способ достичь того, что мне нужно, но есть ли способ решить проблему, сохранив при этом рубокопа?
2 ответа
Добавить явное nil
:
# TODO: Welcome suggestions for a better way to deal with this...
# rubocop:disable HandleExceptions
def self.valid_date?(date)
Date.parse(date)
rescue ArgumentError
nil
end
В противном случае, включить встроенный rescue
в .rubocop.yml
для более короткого метода:
Style/RescueModifier:
Enabled: false
Затем:
# TODO: Welcome suggestions for a better way to deal with this...
# rubocop:disable HandleExceptions
def self.valid_date?(date)
Date.parse(date) rescue nil
end
Помните, насколько читаемый ваш код зависит не от того, что говорит машина, а от того, что другие люди (то есть сообщество) думают об этом. Rubocop - это всего лишь инструмент для быстрого просмотра кода без построчного чтения вручную.
# rubocop:disable Style/RescueModifier
def self.valid_date?(date)
Date.parse(date) rescue nil
end
# rubocop:enable Style/RescueModifier