Как я могу проверить строку даты, не спасая исключение, чтобы сохранить счастливым линтер 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
Другие вопросы по тегам