Sha256: ba6dfe569559e7d9f7b4c766aa4b7fc432e4eb21ed62c7886d47bc5376f4adc3
Contents?: true
Size: 1.15 KB
Versions: 88
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true require_relative "argument_mappers/conversion_error" module ERBLint module Linters # Provides the autocorrection functionality for the linter. Once included, you should define the following constants: # * `ARGUMENT_MAPPER` - required - The class responsible for transforming classes and attributes into arguments for the component. # * `COMPONENT` - required - The component name for the linter. It will be used to generate the correction. module Autocorrectable def map_arguments(tag, _tag_tree) self.class::ARGUMENT_MAPPER.new(tag).to_s rescue ArgumentMappers::ConversionError nil end def correction(args) return if args.nil? correction = "<%= render #{self.class::COMPONENT}.new" correction += "(#{args})" if args.present? "#{correction} do %>" end def message(args, processed_source) return self.class::MESSAGE if args.nil? "#{self.class::MESSAGE}\nTry using:\n\n#{correction(args)}\n\nYou can also run erblint in autocorrect mode:\n\nbundle exec erblint -a #{processed_source.filename}\n" end end end end
Version data entries
88 entries across 88 versions & 1 rubygems