Class: Mdlint::Linter::RuleRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/mdlint/linter/rule.rb,
sig/mdlint.rbs,
sig/internal.rbs

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.rulesObject (readonly)

Returns the value of attribute rules.



48
49
50
# File 'lib/mdlint/linter/rule.rb', line 48

def rules
  @rules
end

Class Method Details

.allArray[singleton(Rule)]

Returns:

  • (Array[singleton(Rule)])


57
58
59
# File 'lib/mdlint/linter/rule.rb', line 57

def all
  @rules
end

.clearObject

Returns:

  • (Object)


76
77
78
# File 'lib/mdlint/linter/rule.rb', line 76

def clear
  @rules = []
end

.find(rule_id) ⇒ singleton(Rule)?

Parameters:

  • rule_id (String)

Returns:

  • (singleton(Rule), nil)


61
62
63
64
# File 'lib/mdlint/linter/rule.rb', line 61

def find(rule_id)
  normalized_id = normalize_id(rule_id)
  @rules.find { |r| r.rule_id == normalized_id }
end

.normalize_id(rule_id) ⇒ String

Parameters:

  • rule_id (String)

Returns:

  • (String)


66
67
68
69
70
71
72
73
74
# File 'lib/mdlint/linter/rule.rb', line 66

def normalize_id(rule_id)
  value = rule_id.to_s
  value = value.upcase if value.match?(/\Amd\d+\z/i)
  rule = @rules.find do |rule_class|
    aliases = rule_class.aliases
    rule_class.rule_id == value || (aliases.is_a?(Array) && aliases.any? { |name| name.is_a?(String) && name.casecmp?(value.to_s) })
  end
  rule ? rule.rule_id : value
end

.register(rule_class) ⇒ void

This method returns an undefined value.

Parameters:

  • rule_class (singleton(Rule))


50
51
52
53
54
55
# File 'lib/mdlint/linter/rule.rb', line 50

def register(rule_class)
  return if rule_class.rule_id && @rules.any? { |existing| existing.rule_id == rule_class.rule_id }
  return if @rules.include?(rule_class)

  @rules << rule_class
end

.unregister(rule_class) ⇒ void

This method returns an undefined value.

Parameters:

  • rule_class (Class)


80
81
82
# File 'lib/mdlint/linter/rule.rb', line 80

def unregister(rule_class)
  @rules.delete(rule_class)
end