class ERBLint::Linters::DeprecatedComponentsCounter

Lints against deprecated components

def autocorrect(processed_source, offense)

def autocorrect(processed_source, offense)
  return unless offense.context
  lambda do |corrector|
    if processed_source.file_content.include?("erblint:counter #{self.class.name.gsub('ERBLint::Linters::', '')}")
      # update the counter if exists
      corrector.replace(offense.source_range, offense.context)
    else
      # add comment with counter if none
      corrector.insert_before(processed_source.source_buffer.source_range, "#{offense.context}\n")
    end
  end
end

def run(processed_source)

def run(processed_source)
  processed_source.ast.descendants(:erb).each do |erb_node|
    _, _, code_node = *erb_node
    code = code_node.children.first.strip
    next unless code.include?("Primer::")
    deprecated_components.each do |component|
      next unless code.include?(component)
      add_offense(
        erb_node.loc,
        message(component)
      )
    end
  end
  counter_correct?(processed_source)
end