Sha256: 5200815630a6c6baa547e823ff7ad04eecbe0b1a171ffd67103e67c00b836bcd
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # This cop checks for the presence of `method_missing` without also # defining `respond_to_missing?`. # # @example # #bad # def method_missing(name, *args) # # ... # end # # #good # def respond_to_missing?(name, include_private) # # ... # end # # def method_missing(name, *args) # # ... # end # class MissingRespondToMissing < Cop MSG = 'When using `method_missing`, define `respond_to_missing?`.' def on_def(node) return unless node.method?(:method_missing) return if implements_respond_to_missing?(node) add_offense(node) end alias on_defs on_def private 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 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.89.0 | lib/rubocop/cop/style/missing_respond_to_missing.rb |