Class: ThemeCheck::DisabledChecks
- Inherits:
-
Object
- Object
- ThemeCheck::DisabledChecks
- Defined in:
- lib/theme_check/disabled_checks.rb
Constant Summary collapse
- DISABLE_START =
'theme-check-disable'
- DISABLE_END =
'theme-check-enable'
- DISABLE_PREFIX_PATTERN =
/#{DISABLE_START}|#{DISABLE_END}/
- ACTION_DISABLE_CHECKS =
:disable
- ACTION_ENABLE_CHECKS =
:enable
Instance Method Summary collapse
- #checks_missing_end_index ⇒ Object
- #disabled?(check, theme_file, check_name, index) ⇒ Boolean
-
#initialize ⇒ DisabledChecks
constructor
A new instance of DisabledChecks.
- #remove_disabled_offenses(checks) ⇒ Object
- #update(node) ⇒ Object
Constructor Details
#initialize ⇒ DisabledChecks
Returns a new instance of DisabledChecks.
12 13 14 15 16 17 |
# File 'lib/theme_check/disabled_checks.rb', line 12 def initialize @disabled_checks = Hash.new do |hash, key| theme_file, check_name = key hash[key] = DisabledCheck.new(theme_file, check_name) end end |
Instance Method Details
#checks_missing_end_index ⇒ Object
45 46 47 48 49 |
# File 'lib/theme_check/disabled_checks.rb', line 45 def checks_missing_end_index @disabled_checks.values .select(&:missing_end_index?) .map(&:name) end |
#disabled?(check, theme_file, check_name, index) ⇒ Boolean
36 37 38 39 40 41 42 43 |
# File 'lib/theme_check/disabled_checks.rb', line 36 def disabled?(check, theme_file, check_name, index) return true if check.ignored_patterns&.any? do |pattern| theme_file.relative_path.fnmatch?(pattern) end @disabled_checks[[theme_file, :all]]&.disabled?(index) || @disabled_checks[[theme_file, check_name]]&.disabled?(index) end |
#remove_disabled_offenses(checks) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/theme_check/disabled_checks.rb', line 51 def remove_disabled_offenses(checks) checks.disableable.each do |check| check.offenses.reject! do |offense| disabled?(check, offense.theme_file, offense.code_name, offense.start_index) end end end |
#update(node) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/theme_check/disabled_checks.rb', line 19 def update(node) text = comment_text(node) if start_disabling?(text) checks_from_text(text).each do |check_name| disabled = @disabled_checks[[node.theme_file, check_name]] disabled.start_index = node.start_index disabled.first_line = true if node.line_number == 1 end elsif stop_disabling?(text) checks_from_text(text).each do |check_name| disabled = @disabled_checks[[node.theme_file, check_name]] next unless disabled disabled.end_index = node.end_index end end end |