class RuboCop::Cop::Lint::DeprecatedClassMethods

File.exist?(some_path)
# good
@example
File.exists?(some_path)
# bad
@example
This cop checks for uses of the deprecated class method usages.

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    check(node) do |data|
      corrector.replace(node.loc.selector,
                        data.replacement_method.to_s)
    end
  end
end

def check(node)

def check(node)
  receiver, method_name, *_args = *node
  DEPRECATED_METHODS_OBJECT.each do |data|
    next unless data.class_nodes.include?(receiver)
    next unless method_name == data.deprecated_method
    yield data
  end
end

def deprecated_method(data)

def deprecated_method(data)
  method_call(data.class_constant, data.deprecated_method)
end

def method_call(class_constant, method)

def method_call(class_constant, method)
  format('%s.%s', class_constant, method)
end

def on_send(node)

def on_send(node)
  check(node) do |data|
    add_offense(node, :selector,
                format(MSG,
                       deprecated_method(data),
                       replacement_method(data)))
  end
end

def replacement_method(data)

def replacement_method(data)
  method_call(data.class_constant, data.replacement_method)
end