Sha256: e2c688cb69666d3cb6ca0317e4727db6613f0d66589e6b1ea490f45a253df6b6
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module InternalAffairs # Checks that node types are checked using the predicate helpers. # # @example # # # bad # node.type == :send # # # good # node.send_type? # class NodeTypePredicate < Base extend AutoCorrector MSG = 'Use `#%<type>s_type?` to check node type.' RESTRICT_ON_SEND = %i[==].freeze # @!method node_type_check(node) def_node_matcher :node_type_check, <<~PATTERN (send (call _ :type) :== (sym $_)) PATTERN def on_send(node) node_type_check(node) do |node_type| return unless Parser::Meta::NODE_TYPES.include?(node_type) message = format(MSG, type: node_type) add_offense(node, message: message) do |corrector| range = node.receiver.loc.selector.join(node.source_range.end) corrector.replace(range, "#{node_type}_type?") end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-1.70.0 | lib/rubocop/cop/internal_affairs/node_type_predicate.rb |