Add and apply Style/InvertibleUnlessCondition rule

This rule was added in rubocop 1.44.0. It's useful to avoid accidental
`unless !condition` clauses.

Note we aren't replacing `unless zero?` with `if nonzero?` because we
never use `nonzero?`; using it sounds like `if !zero?`.

Replacing `unless any?` with `if none?` is only consistent if we also replace
`unless present?` with `if blank?`, so we're also adding this case. For
consistency, we're also replacing `unless blank?` with `if present?`.

We're also simplifying code dealing with `> 0` conditions in order to
make the code (hopefully) easier to understand.

Also for consistency, we're enabling the `Style/InverseMethods` rule,
which follows a similar idea.
This commit is contained in:
Javi Martín
2023-09-07 19:08:38 +02:00
parent 21ca96ae1c
commit 28aafbd4bc
21 changed files with 40 additions and 34 deletions

View File

@@ -16,7 +16,7 @@ class RemoteCensusApi
def extract_value(path_value)
path = parse_response_path(path_value)
return nil unless path.present?
return nil if path.blank?
@body.dig(*path)
end
@@ -29,10 +29,10 @@ class RemoteCensusApi
def date_of_birth
path_value = Setting["remote_census.response.date_of_birth"]
str = extract_value(path_value)
return nil unless str.present?
return nil if str.blank?
day, month, year = str.match(/(\d\d?)\D(\d\d?)\D(\d\d\d?\d?)/)[1..3]
return nil unless day.present? && month.present? && year.present?
return nil if day.blank? || month.blank? || year.blank?
Time.zone.local(year.to_i, month.to_i, day.to_i).to_date
end