Path: blob/master/lib/rubocop/cop/lint/deprecated_gem_version.rb
19813 views
# frozen_string_literal: true12module RuboCop3module Cop4module Lint5class DeprecatedGemVersion < Base6include RangeHelp7extend AutoCorrector89MSG = 'Use `Rex::Version` instead of `Gem::Version`.'1011# @!method gem_version_const(node)12def_node_matcher :gem_version_const, <<~PATTERN13(const14$(const {nil? cbase} :Gem) {:Version})15PATTERN1617# @!method gem_version_const_cbase(node)18def_node_matcher :gem_version_const_cbase, <<~PATTERN19(const20$(const {cbase} :Gem) {:Version})21PATTERN2223def on_const(node)24return unless gem_version_const(node)2526add_offense(node, message: MSG) do |corrector|27autocorrect(corrector, node)28end29end3031private3233def autocorrect(corrector, node)34if gem_version_const_cbase(node)35corrector.replace(gem_version_const_cbase(node), '::Rex')36else37corrector.replace(gem_version_const(node), 'Rex')38end39end4041end42end43end44end454647