class RuboCop::Cop::Style::MissingRespondToMissing
end
# …
def method_missing(name, *args)
end
# …
def respond_to_missing?(name, include_private)
#good
end
# …
def method_missing(name, *args)
#bad
@example
defining ‘respond_to_missing?`.
Checks for the presence of `method_missing` without also
def implements_respond_to_missing?(node)
def implements_respond_to_missing?(node) return false unless (grand_parent = node.parent.parent) grand_parent.each_descendant(node.type) do |descendant| return true if descendant.method?(:respond_to_missing?) child = descendant.children.first return true if child.respond_to?(:method?) && child.method?(:respond_to_missing?) end false end
def on_def(node)
def on_def(node) return unless node.method?(:method_missing) return if implements_respond_to_missing?(node) add_offense(node) end