Module: RuboCop::Cop::AutocorrectLogic

Included in:
Base
Defined in:
lib/rubocop/cop/autocorrect_logic.rb

Overview

This module encapsulates the logic for autocorrect behavior for a cop.

Instance Method Summary collapse

Instance Method Details

#autocorrect?Boolean

Returns:

  • (Boolean)

7
8
9
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 7

def autocorrect?
  autocorrect_requested? && correctable? && autocorrect_enabled?
end

#autocorrect_enabled?Boolean

Returns:

  • (Boolean)

28
29
30
31
32
33
34
35
36
37
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 28

def autocorrect_enabled?
  # allow turning off autocorrect on a cop by cop basis
  return true unless cop_config

  return false if cop_config['AutoCorrect'] == false

  return safe_autocorrect? if @options.fetch(:safe_auto_correct, false)

  true
end

#autocorrect_requested?Boolean

Returns:

  • (Boolean)

11
12
13
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 11

def autocorrect_requested?
  @options.fetch(:auto_correct, false)
end

#correctable?Boolean

Returns:

  • (Boolean)

15
16
17
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 15

def correctable?
  self.class.support_autocorrect? || disable_uncorrectable?
end

#disable_uncorrectable?Boolean

Returns:

  • (Boolean)

19
20
21
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 19

def disable_uncorrectable?
  @options[:disable_uncorrectable] == true
end

#safe_autocorrect?Boolean

Returns:

  • (Boolean)

23
24
25
26
# File 'lib/rubocop/cop/autocorrect_logic.rb', line 23

def safe_autocorrect?
  cop_config.fetch('Safe', true) &&
    cop_config.fetch('SafeAutoCorrect', true)
end