Class: Glossarist::Validation::Rules::ConceptIdUniquenessRule
- Defined in:
- lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb
Instance Method Summary collapse
- #applicable?(context) ⇒ Boolean
- #category ⇒ Object
- #check(context) ⇒ Object
- #code ⇒ Object
- #scope ⇒ Object
- #severity ⇒ Object
Methods inherited from Base
Instance Method Details
#applicable?(context) ⇒ Boolean
12 13 14 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 12 def applicable?(context) context.concepts.any? end |
#category ⇒ Object
8 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 8 def category = :structure |
#check(context) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 16 def check(context) issues = [] seen_ids = {} context.concepts.each_with_index do |concept, idx| id = concept.data&.id&.to_s fname = id ? "concept-#{id}.yaml" : "concept-#{idx}.yaml" next unless id if seen_ids[id] issues << issue( "#{fname}: duplicate id '#{id}' (first seen in #{seen_ids[id]})", code: code, severity: "error", ) else seen_ids[id] = fname end end issues end |
#code ⇒ Object
7 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 7 def code = "GLS-001-uniq" |
#scope ⇒ Object
10 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 10 def scope = :collection |
#severity ⇒ Object
9 |
# File 'lib/glossarist/validation/rules/concept_id_uniqueness_rule.rb', line 9 def severity = "error" |