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