class RuboCop::Cop::Style::EvenOdd
This cop checks for places where Integer#even? or Integer#odd? should have been used.
@example
# bad if x % 2 == 0 # good if x.even?
Constants
- MSG
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/style/even_odd.rb, line 33 def autocorrect(node) even_odd_candidate?(node) do |base_number, method, arg| replacement_method = replacement_method(arg, method) correction = "#{base_number.source}.#{replacement_method}?" ->(corrector) { corrector.replace(node.source_range, correction) } end end
on_send(node)
click to toggle source
# File lib/rubocop/cop/style/even_odd.rb, line 26 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, replacement_method)) end end
Private Instance Methods
replacement_method(arg, method)
click to toggle source
# File lib/rubocop/cop/style/even_odd.rb, line 44 def replacement_method(arg, method) case arg when 0 method == :== ? :even : :odd when 1 method == :== ? :odd : :even end end