module RubbyCop::Cop::EnforceSuperclass

Common functionality for enforcing a specific superclass

Public Class Methods

included(base) click to toggle source
# File lib/rubbycop/cop/mixin/enforce_superclass.rb, line 7
      def self.included(base)
        base.def_node_matcher :class_definition, <<-PATTERN
        (class (const _ !:#{base::SUPERCLASS}) #{base::BASE_PATTERN} ...)
        PATTERN

        base.def_node_matcher :class_new_definition, <<-PATTERN
        [!^(casgn nil :#{base::SUPERCLASS} ...) (send (const nil :Class) :new #{base::BASE_PATTERN})]
        PATTERN
      end

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubbycop/cop/mixin/enforce_superclass.rb, line 29
def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.source_range, self.class::SUPERCLASS)
  end
end
on_class(node) click to toggle source
# File lib/rubbycop/cop/mixin/enforce_superclass.rb, line 17
def on_class(node)
  class_definition(node) do
    add_offense(node.children[1], :expression, self.class::MSG)
  end
end
on_send(node) click to toggle source
# File lib/rubbycop/cop/mixin/enforce_superclass.rb, line 23
def on_send(node)
  class_new_definition(node) do
    add_offense(node.children.last, :expression, self.class::MSG)
  end
end