Sha256: 1923f1d33ae09b329457ea2158695d1cf776e7711ce6d4e467de889a3c5de85b

Contents?: true

Size: 958 Bytes

Versions: 258

Compression:

Stored size: 958 Bytes

Contents

# frozen_string_literal: true

module RuboCop
  # This class handles collecting the options for regenerating a TODO file.
  # @api private
  class ConfigRegeneration
    AUTO_GENERATED_FILE = RuboCop::CLI::Command::AutoGenerateConfig::AUTO_GENERATED_FILE
    COMMAND_REGEX = /(?<=`rubocop )(.*?)(?=`)/.freeze
    DEFAULT_OPTIONS = { auto_gen_config: true }.freeze

    # Get options from the comment in the TODO file, and parse them as options
    def options
      # If there's no existing TODO file, generate one
      return DEFAULT_OPTIONS unless todo_exists?

      match = generation_command.match(COMMAND_REGEX)
      return DEFAULT_OPTIONS unless match

      options = match[1].split
      Options.new.parse(options).first
    end

    private

    def todo_exists?
      File.exist?(AUTO_GENERATED_FILE) && !File.empty?(AUTO_GENERATED_FILE)
    end

    def generation_command
      File.foreach(AUTO_GENERATED_FILE).take(2).last
    end
  end
end

Version data entries

258 entries across 249 versions & 24 rubygems

Version Path
rubocop-1.74.0 lib/rubocop/config_regeneration.rb
rubocop-1.73.2 lib/rubocop/config_regeneration.rb
siteimprove_api_client-1.0.1 vendor/bundle/ruby/3.2.0/gems/rubocop-1.73.1/lib/rubocop/config_regeneration.rb
rubocop-1.73.1 lib/rubocop/config_regeneration.rb
rubocop-1.73.0 lib/rubocop/config_regeneration.rb
rubocop-1.72.2 lib/rubocop/config_regeneration.rb
rubocop-1.72.1 lib/rubocop/config_regeneration.rb
rubocop-1.72.0 lib/rubocop/config_regeneration.rb
rubocop-1.71.2 lib/rubocop/config_regeneration.rb
tailscale_middleware-0.0.3 vendor/cache/ruby/3.4.0/gems/rubocop-1.71.1/lib/rubocop/config_regeneration.rb
rubocop-1.71.1 lib/rubocop/config_regeneration.rb
rubocop-1.71.0 lib/rubocop/config_regeneration.rb
rubocop-1.70.0 lib/rubocop/config_regeneration.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/rubocop-1.64.1/lib/rubocop/config_regeneration.rb
rubocop-1.69.2 lib/rubocop/config_regeneration.rb
rubocop-1.69.1 lib/rubocop/config_regeneration.rb
rubocop-1.69.0 lib/rubocop/config_regeneration.rb
rubocop-1.68.0 lib/rubocop/config_regeneration.rb
rubocop-1.67.0 lib/rubocop/config_regeneration.rb
rubocop-1.66.1 lib/rubocop/config_regeneration.rb