class RuboCop::Cop::Style::EvenOdd
end
if x.even?
# good
end
if x % 2 == 0
# bad
@example
can be used.
Checks for places where ‘Integer#even?` or `Integer#odd?`
def on_send(node)
def on_send(node) even_odd_candidate?(node) do |base_number, method, arg| replacement_method = replacement_method(arg, method) add_offense(node, message: format(MSG, method: replacement_method)) do |corrector| correction = "#{base_number.source}.#{replacement_method}?" corrector.replace(node, correction) end end end
def replacement_method(arg, method)
def replacement_method(arg, method) case arg when 0 method == :== ? :even : :odd when 1 method == :== ? :odd : :even end end