Class: Mdlint::Linter::RuleRegistry
- Inherits:
-
Object
- Object
- Mdlint::Linter::RuleRegistry
- Defined in:
- lib/mdlint/linter/rule.rb,
sig/mdlint.rbs,
sig/internal.rbs
Class Attribute Summary collapse
-
.rules ⇒ Object
readonly
Returns the value of attribute rules.
Class Method Summary collapse
- .all ⇒ Array[singleton(Rule)]
- .clear ⇒ Object
- .find(rule_id) ⇒ singleton(Rule)?
- .normalize_id(rule_id) ⇒ String
- .register(rule_class) ⇒ void
- .unregister(rule_class) ⇒ void
Class Attribute Details
.rules ⇒ Object (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
.all ⇒ Array[singleton(Rule)]
57 58 59 |
# File 'lib/mdlint/linter/rule.rb', line 57 def all @rules end |
.clear ⇒ Object
76 77 78 |
# File 'lib/mdlint/linter/rule.rb', line 76 def clear @rules = [] end |
.find(rule_id) ⇒ singleton(Rule)?
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
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.
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.
80 81 82 |
# File 'lib/mdlint/linter/rule.rb', line 80 def unregister(rule_class) @rules.delete(rule_class) end |