class RuboCop::Cop::Style::EvenOdd
Checks for places where ‘Integer#even?` or `Integer#odd?` can be used.
@example
# bad if x % 2 == 0 end # good if x.even? end
Constants
- MSG
- RESTRICT_ON_SEND
Public Instance Methods
Source
# File lib/rubocop/cop/style/even_odd.rb, line 33 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
Private Instance Methods
Source
# File lib/rubocop/cop/style/even_odd.rb, line 45 def replacement_method(arg, method) case arg when 0 method == :== ? :even : :odd when 1 method == :== ? :odd : :even end end