Class: RuboCop::Cop::Primer::ComponentNameMigration

Inherits:
BaseCop
  • Object
show all
Defined in:
lib/rubocop/cop/primer/component_name_migration.rb

Overview

This cop ensures that components don’t use deprecated component names

bad Primer::ComponentNameComponent.new()

good Primer::Beta::ComponentName.new()

Constant Summary collapse

DEPRECATIONS =
{
  "Primer::BoxComponent" => "Primer::Box",
  "Primer::ButtonGroup" => "Primer::Beta::ButtonGroup",
  "Primer::BlankslateComponent" => "Primer::Beta::Blankslate",
  "Primer::BorderBoxComponent" => "Primer::Beta::BorderBox",
  "Primer::BaseButton" => "Primer::Beta::BaseButton",
  "Primer::TestComponent" => "Primer::Beta::Test"
}.freeze

Instance Method Summary collapse

Methods inherited from BaseCop

#valid_node?

Instance Method Details

#autocorrect(node) ⇒ Object



32
33
34
35
36
# File 'lib/rubocop/cop/primer/component_name_migration.rb', line 32

def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node, DEPRECATIONS[node.const_name])
  end
end

#on_send(node) ⇒ Object



26
27
28
29
30
# File 'lib/rubocop/cop/primer/component_name_migration.rb', line 26

def on_send(node)
  return unless node.method_name == :new && !node.receiver.nil? && DEPRECATIONS.key?(node.receiver.const_name)

  add_offense(node.receiver, message: "Don't use deprecated names")
end