class RuboCop::Cop::Primer::DeprecatedComponents
Primer::Alpha::Tooltip.new(:foo)
good
Primer::Tooltip.new(:foo)
bad
Primer::Beta::Blankslate.new(:foo)
good
Primer::BlankslateComponent.new(:foo)
bad
This cop ensures that components marked as “deprecated” in ‘static/statuses.json` are discouraged from use.
def on_send(node)
def on_send(node) return unless node.source.include?("Primer::") deprecated_components.each do |component| pattern = NodePattern.new("(send #{pattern(component)} :new ...)") add_offense(node, message: message(component)) if pattern.match(node) end end
def pattern(component)
def pattern(component) Parser::CurrentRuby.parse(component) .to_s .gsub("nil", "nil?") .delete("\n") .gsub(" ", " ") end