class RuboCop::Cop::Style::ClassCheck

This cop enforces consistent use of `Object#is_a?` or `Object#kind_of?`.

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/class_check.rb, line 31
def autocorrect(node)
  _receiver, method_name, *_args = *node

  lambda do |corrector|
    corrector.replace(node.loc.selector,
                      method_name == :is_a? ? 'kind_of?' : 'is_a?')
  end
end
message(node) click to toggle source
# File lib/rubocop/cop/style/class_check.rb, line 21
def message(node)
  _receiver, method_name, *_args = *node

  if method_name == :is_a?
    format(MSG, 'kind_of?', 'is_a?')
  else
    format(MSG, 'is_a?', 'kind_of?')
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/class_check.rb, line 12
def on_send(node)
  _receiver, method_name, *_args = *node
  return unless [:is_a?,
                 :kind_of?].include?(method_name)

  return if style == method_name
  add_offense(node, :selector)
end