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

Version Path
ariadne_view_components-0.0.69 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.68 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.67 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.66 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.65 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.64 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59-x64-mingw-ucrt lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59-aarch64-linux lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59-x86_64-darwin lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59-x86_64-linux lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59-arm64-darwin lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.59 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58-x86_64-darwin lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58-aarch64-linux lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58-arm64-darwin lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58-x64-mingw-ucrt lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58 lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.58-x86_64-linux lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.57-arm64-darwin lib/ariadne/view_components/linters/autocorrectable.rb
ariadne_view_components-0.0.57-aarch64-linux lib/ariadne/view_components/linters/autocorrectable.rb