class RuboCop::Cop::Lint::DeprecatedClassMethods
Addrinfo.tcp(host, port).getnameinfo
Addrinfo.getaddrinfo(nodename, service)
ENV # ‘ENV.freeze` cannot prohibit changes to environment variables.
block_given?
Dir.exist?(some_path)
File.exist?(some_path)
# good
@example
Socket.gethostbyaddr(host)
Socket.gethostbyname(host)
ENV.freeze # Calling `Env.freeze` raises `TypeError` since Ruby 2.7.
iterator?
Dir.exists?(some_path)
File.exists?(some_path)
# bad
@example
This cop checks for uses of the deprecated class method usages.
def check(node)
def check(node) DEPRECATED_METHODS_OBJECT.each_key do |deprecated| next unless deprecated.class_nodes.include?(node.receiver) next unless node.method?(deprecated.method) yield deprecated end end
def on_send(node)
def on_send(node) check(node) do |deprecated| prefer = replacement(deprecated) message = format(MSG, current: deprecated, prefer: prefer) current_method = node.loc.selector add_offense(current_method, message: message) do |corrector| next unless deprecated.correctable? if (preferred_method = prefer.method) corrector.replace(current_method, preferred_method) else corrector.remove(node.loc.dot) corrector.remove(current_method) end end end end
def replacement(deprecated)
def replacement(deprecated) DEPRECATED_METHODS_OBJECT[deprecated] end